使用chain方式,在第二action中获取第一个action中actionMessage
为什么采用chain 方式时,没有复制Errors, Field errors and Message?
struts2.0这个低版本的默认会带过去
struts.xml中配置如下:
- <struts>
- <constant name="struts.devMode" value="true" />
- <package name="default" namespace="/" extends="struts-default">
- <action name="getvalue" class="example.GetValueAction">
- <result type="chain">
- <param name="actionName">getvalue2</param>
- <param name="namespace">/</param>
- </result>
- </action>
- </package>
- <package name="222" namespace="/" extends="struts-default">
- <action name="getvalue2" class="example.GetValue2Action">
- <result>/result.jsp</result>
- </action>
- </package>
- </struts>
第一个action(getvalue) 通过chain的方式把请求传递到第二个action(getvalue2),可是在第二个action无法获取第一个action中设置的actionMessage,当然在result.jsp中使用 <s:actionmessage/>也无法获取正确的值。
第一个action部分代码如下:
- public class GetValueAction extends ActionSupport {
- private static final long serialVersionUID = 4865100826143278474L;
- @Override
- public String execute() throws Exception {
- String actionMessage="aaa";//你自己需要设置的message
- addActionMessage(actionMessage);
- return super.execute();
- }
- }
原因分析:
采用chain方式时,Errors, Field errors and Message 默认不会复制到第二个action,必须手动指定:
struts.xwork.chaining.copyErrors - 设置为true ,可以复制 Action Errors 到第二个action;
struts.xwork.chaining.copyFieldErrors - 设置为true ,可以复制 Field Errors 到第二个action;
struts.xwork.chaining.copyMessages - 设置为true ,可以复制 Action Messages到第二个action;
解决方法:
在struts.xml中 添加:
<constant name="struts.xwork.chaining.copyErrors" value="true" />
<constant name="struts.xwork.chaining.copyFieldErrors" value="true" />
<constant name="struts.xwork.chaining.copyMessages" value="true" />
相关推荐
<s:actionmessage /> ``` 5. **s:append** - 迭代器辅助标签 `s:append` 用于合并多个迭代器中的内容。它创建一个新的迭代器,包含所有指定迭代器的元素: ```jsp <s:append id="myAppendIterator"> <s:param...
5. <s:actionmessage/>-----如果action的message有值那么显示出来 6. <s:append></s:append>-----添加一个值到list,类似于list.add(); 7. <s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的...
4. **actionmessage标签**:`<s:actionmessage>` 显示Action级别的普通消息或提示信息,与`addActionMessage`方法配合使用: ```jsp <s:actionmessage /> ``` 5. **append标签**:`<s:append>` 是一个辅助标签,...
* <s:actionmessage>:如果 action 的 message 有值那么显示出来 * <s:append>:添加一个值到 list,类似于 list.add(); * <s:autocompleter>:自动完成 <s:combobox> 标签的内容,这个是 AJAX 实现的 B: * <s:...
`<s:actionerror/>` 和 `<s:actionmessage/>` 这两个标签分别用于显示 `ActionErrors` 和 `ActionMessages` 的内容,它们通常用于向用户反馈表单验证或操作结果的信息。 **示例:** ```xml <s:actionerror/> <s:...
4. `<s:actionmessage/>`:如果Action中的全局消息有值,则显示这些消息。 5. `<s:append></s:append>`:向列表中添加一个值,等同于Java的`list.add()`操作。 6. `<s:autocompleter></s:autocompleter>`:实现自动...
`<s:actionerror/>` 和 `<s:actionmessage/>` - **功能**:分别用于显示Action中的错误信息和消息提示。 - **示例**: ```xml <s:actionerror/> <s:actionmessage/> ``` ##### 4. `<s:append>` —— 添加值到...
- **用途**:与<s:iterator>标签一起使用,用于数据生成。 - **示例**: ```xml <s:generator separator="," value="%{#list}" /> ``` 22. **<s:head> 头部标签** - **用途**:在<head>标签内使用。 - **...
<s:actionmessage/> ``` ##### 5. `<s:append>` - 值追加标签 用于将一个值追加到列表中。 ```jsp <s:append> <s:param value="newValue"/> </s:append> ``` ##### 6. `<s:autocompleter>` - 自动完成标签 这是一...
<s:actionmessage/> ``` #### 5. `<s:append>` - 添加到列表 用于向现有的列表中添加新的元素。 ```xml <s:append var="myList" value="%{newElement}"/> ``` #### 6. `<s:autocompleter>` - 自动完成 该标签...
4. `<s:actionmessage/>` - 显示Action的提示信息,通常用于用户交互反馈。 5. `<s:append></s:append>` - 向列表中添加一个值,等同于Java的`list.add()`操作。 6. `<s:autocompleter></s:autocompleter>` - 自动...
`<s:actionerror/>` 和 `<s:actionmessage/>` 标签用于在视图层展示来自控制器层(Action)的消息。例如,如果Action中有以下代码: ```java if (username.isEmpty()) { addActionError("用户名不能为空"); } ``` ...
<s:actionmessage/> ``` ### 4. `<s:append>` 标签 `<s:append>` 标签用于向列表中添加值,类似于在Java中调用`List.add()`方法。这在动态构建列表时非常有用。 ```xml <s:append var="myList"> <s:property ...
<s:label for="email">Email:</s:label> ``` 创建一个与`email`输入框关联的标签。 29. **`<s:merge>`** - 合并多个列表。例如: ```jsp <s:merge var="mergedList"> <s:property value="list1"/> <s:...
<s:actionmessage/> ``` - **说明**:用于显示Action执行后产生的消息。 5. **`<s:append>`** - 向列表中添加值。 - **示例**: ```jsp <s:append var="myList"> <s:property value="item"/> </s:append> ...
<s:actionmessage/> ``` ##### 5. `<s:append>` 标签 - **用途**:向集合添加值。 - **示例**: ```xml <s:append var="list" value="newValue"/> ``` ##### 6. `<s:autocompleter>` 标签 - **用途**:自动...
- `<s:actionmessage/>`: 显示Action级别的消息信息。 C. 数据输入与选择: - `<s:checkbox>`: 创建一个复选框。 - `<s:checkboxlist list="">`: 用于创建一组可多选的复选框,列表来自于一个集合。 - `<s:combobox...
以上只是Struts2标签库中的一部分,实际使用中还有许多其他标签,如`<s:textfield>`(文本框)、`<s:textarea>`(文本域)、`<s:submit>`(提交按钮)等,它们极大地简化了JSP页面的编写,提高了开发效率。...
4. `<s:actionmessage/>`:如果Action中的消息有值,会显示出来,通常用于提示用户操作成功的信息。 5. `<s:append>`:向列表中添加值,类似于Java的`list.add()`方法。 6. `<s:autocompleter>`:实现自动完成功能...