This is an automated email from the ASF dual-hosted git repository.

asf-gitbox-commits pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 44debdf7c Updates stage by Jenkins
44debdf7c is described below

commit 44debdf7c93805f1e5d6ef34b93d322def3fd743
Author: jenkins <[email protected]>
AuthorDate: Wed Jul 29 07:32:13 2026 +0000

    Updates stage by Jenkins
---
 content/core-developers/model-driven.html | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/content/core-developers/model-driven.html 
b/content/core-developers/model-driven.html
index 539e43230..295e13764 100644
--- a/content/core-developers/model-driven.html
+++ b/content/core-developers/model-driven.html
@@ -162,12 +162,17 @@
 <p>Struts 2 does not have “forms” like Struts 1 did. In Struts 2 request 
parameters are bound directly to fields 
 in the actions class, and this class is placed on top of the stack when the 
action is executed.</p>
 
-<p>If an action class implements the interface <code class="language-plaintext 
highlighter-rouge">com.opensymphony.xwork2.ModelDriven</code> then it needs to 
return an object 
+<p>If an action class implements the interface <code class="language-plaintext 
highlighter-rouge">org.apache.struts2.ModelDriven</code> then it needs to 
return an object 
 from the <code class="language-plaintext highlighter-rouge">getModel()</code> 
method. Struts will then populate the fields of this object with the request 
parameters,
 and this object will be placed on top of the stack once the action is 
executed. Validation will also be performed
 on this model object, instead of the action. Please read about <a 
href="visitor-field-validator-annotation">VisitorFieldValidator Annotation</a>
 which can help you validate model’s fields.</p>
 
+<p class="alert alert-warning">The model is also the target of <code 
class="language-plaintext highlighter-rouge">@StrutsParameter</code> 
authorization: its members are populated from the request without
+requiring the annotation, on every input channel. Shape the model as a request 
DTO holding only the fields the action
+intends to accept, not as a domain or persistence entity. See
+<a href="struts-parameter-annotation.html#modeldriven-actions">StrutsParameter 
Annotation</a> for the full rules.</p>
+
 <h2 id="interceptor">Interceptor</h2>
 
 <p>To use <code class="language-plaintext 
highlighter-rouge">ModelDriven</code> actions, make sure that the <a 
href="model-driven-interceptor">Model Driven Interceptor</a> is applied 

Reply via email to