显示标记表传递值到requestURI

时间:2014-06-13 10:19:06

标签: struts2 tiles displaytag

如何通过Struts2中的操作类或其他形式将值设置为requestURI。我需要根据tile更改requestURI的值。

1 个答案:

答案 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>