如何通过Struts2中的操作类或其他形式将值设置为requestURI。我需要根据tile更改requestURI的值。
答案 0 :(得分:1)
选项1:从行动传递价值(更好的方式)
在yourAction.java
private String myActionName;
public String execute() {
myActionName="action1.action";
return SUCCESS;
}
public void setMyActionName(String myActionName) {
this.myActionName = myActionName;
}
public String getMyActionName() {
return myActionName;
}
在jsp
档案
<display:table id="u" name="userlist" pagesize="10" requestURI="${myActionName}" >
...
</display:table>
如果您想在url中传递自己的参数
<s:url action="%{myActionName}" var="requrl" >
<s:param name="myparam">myvalue1</s:param>
</s:url>
<display:table id="u" name="userlist" pagesize="10" requestURI="${requrl}" >
...
</display:table>
选项2:从平铺传递值(未推荐)
在tiles.xml
<definition name="baseLayout" template="/BaseLayout.jsp">
<put-attribute name="title" value="" type="string" />
<put-attribute name="header" value="/Header.jsp" />
<put-attribute name="menu" value="/Menu.jsp" />
<put-attribute name="body" value="" />
<put-attribute name="footer" value="/Footer.jsp" />
<put-attribute name="myattribute" value="" type="string" />
</definition>
<definition name="/welcome.tiles" extends="baseLayout">
<put-attribute name="title" value="Welcome" type="string" />
<put-attribute name="body" value="/Welcome.jsp" />
<put-attribute name="myActionName" cascade="true" value="tileAction1.action" />
</definition>
注意:使用正确的图块版本和tiles.xml dtd
使用cascade="true"
。
在welcome.jsp
<tiles:useAttribute name="myActionName" />
<display:table id="u" name="userlist" pagesize="10" requestURI="${myActionName}" >
...
</display:table>