【问题标题】:Using one struts 2 tag inside another在另一个内部使用一个 struts 2 标签
【发布时间】:2010-08-30 22:40:31
【问题描述】:

我有一个 struts 2 选择元素来选择每页要显示的结果数量。我在会话变量中设置了选定的值。在 JSP 页面上,我希望在选择元素中预先选择用户选择的值。如果我硬线它的价值是这样的

<s:select name="fetchSize" cssClass="textCopmanyPropValue" value="20" headerKey="" list="#{'10':'10 Results/Page', '15':'15 Results/Page', '20' : '20 Results/Page', '25':'25 Results/Page'}"/>`

但如果我使用会话中的值使用&lt;s:property&gt; 标签,它就不起作用

<s:select name="fetchSize" cssClass="textCopmanyPropValue" value="<s:property value='%{#session.fetchSize}'/>" headerKey="" list="#{'10':'10 Results/Page', '15':'15 Results/Page', '20' : '20 Results/Page', '25':'25 Results/Page'}"/>`

请帮助我如何解决这个问题。其次,在另一个内部使用一个 struts 2 标签时总是很混乱。有人可以提供如何在另一个内部使用一个 struts 2 标签的 sysntax。

提前致谢。

【问题讨论】:

  • 一个 Struts 标签会在内部触发一组代码来执行。不允许在另一个 struts 标签内的 Struts 标签。这类似于 HTML,您不能在另一个标签内使用一个标签。相反,您可能希望将fetchSize 作为您的操作类中的属性/属性/字段,并直接在您的select 标记中获取它,即value='fetchSize'。 Struts 2 将在ActionContext 上触发一个setter getFetchSize(),所以不要忘记你的Action 类中的getter/setter。

标签: select struts2


【解决方案1】:

从标准标签库获得帮助:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
...
<c:set var="fetchSize"><s:property value='%{#session.fetchSize}'/></c:set>
<s:select name="fetchSize" 
          cssClass="textCopmanyPropValue" 
          value="${fetchSize}" 
          headerKey="" 
          list="#{'10':'10 Results/Page', '15':'15 Results/Page', '20' : '20 Results/Page', '25':'25 Results/Page'}"/>`

不是很优雅,但很实用。

【讨论】:

    猜你喜欢
    • 2014-10-04
    • 2013-04-17
    • 1970-01-01
    • 2020-03-04
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多