Таблица тегов dispalay передает значение в requestURI

Как установить значение requestURI по классу действия в Struts2 или другой форме. Мне нужно изменить значение requestURI в соответствии с плиткой.


person Dilis    schedule 13.06.2014    source источник


Ответы (1)


Вариант 1. Передача значения из действия (лучший способ)

In 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. Передача значения из плитки (не рекомендуется)

In 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".

In welcome.jsp

  <tiles:useAttribute name="myActionName" />
  <display:table id="u" name="userlist"  pagesize="10"   requestURI="${myActionName}" >
  ...
  </display:table>
person prem30488    schedule 14.06.2014
comment
Спасибо за хорошо объясненный ответ. Раньше я пробовал передать значение из метода действия с неправильным синтаксисом в jsp. Я использовал requestURI = # {myActionName} вместо requestURI = $ {myActionName}. Еще раз спасибо, что показали мне правильный синтаксис. - person Dilis; 15.06.2014