docs: document ModelDriven parameter binding and authorization (#319) * docs: document ModelDriven parameter binding and authorization An action implementing ModelDriven makes its model the target of @StrutsParameter authorization, so the model's members are bindable without the annotation. This holds on every input channel — request parameters, JSON bodies and REST bodies — since they all resolve the authorization target through the same authorizer. Document it on the @StrutsParameter page (canonical), with short notes and cross-links from the Model Driven Interceptor and REST plugin pages, plus guidance to shape a model as a request DTO rather than a domain or persistence entity. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * Adds ToC * docs: correct version attribution for ModelDriven exemption @StrutsParameter was introduced in 6.4.0; the ModelDriven exemption arrived separately in 7.0.0. The previous wording conflated the two and read as though the annotation itself were a 7.0.0 feature. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs: drop 6.x reference from ModelDriven authorization note @StrutsParameter enforcement is supported from Struts 7.0.0; 6.x is not a version the annotation's behavior should be characterised against. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * docs: add ModelDriven binding note to the Model Driven page The conceptual Model Driven page is the likelier landing spot for someone learning the feature, but said only that Struts populates the model's fields — with no mention that this lifts the @StrutsParameter requirement, and no DTO guidance. Adds the same short note and cross-link the other pages carry. Also corrects the interface's package: it is org.apache.struts2 .ModelDriven in 7.x, not com.opensymphony.xwork2.ModelDriven. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
This project is used to update the main Apache Struts website http://struts.apache.org/
See the update website documentation on how to push changes online. However as ASF is using aggressive caching, for a while one still may need to forcely reload the page (CMD+R or Shift+F5) after changes.
Site is generated by Jekyll and uses pure html either markdown format. To test website locally you can use the below command:
bundle exec jekyll serve -w --trace --host 0.0.0.0
or you can use Docker (please install it first) with one of the provided scripts:
./docker-run.fish
when running fish-shell, or:
./docker-run.sh
when running Bash or Sh.
The continuously generated website can then be accessed at http://localhost:4000
All pages are generated into the content folder.
There are two scripts used to build the image but this should be used only when Dockerfile was modified.
Some redirect rules are configured in source/.htaccess file.
When announcing a new release, update the following files together:
_config.yml - bump current_version / prev_version (and the matching *_short and release_date variables).source/announce-YYYY.md - add the announcement entry for the new release in the current year's file.source/releases.md - move the version that has just been superseded into the Prior Releases table so the page reflects what is no longer the recommended download.