【问题标题】:Struts tag inside another tag STRUTS 1.3另一个标签内的 Struts 标签 STRUTS 1.3
【发布时间】:2014-10-04 03:32:24
【问题描述】:

我有一个问题。我一直在不同的论坛上寻找答案,但不幸的是我没有找到答案。我需要这个,因为我正在创建一个网页,您可以在其中更改语言,因此它不能被硬编码。我需要这样做:

<html:option value="<bean:message key="region"/>"><bean:write name="region"/></html:option>

所以我想将 html 标记中的值设置为从我的 messages.properties 文件中获取的字符串。上述解决方案不起作用。我真的很感激你的回答,因为我在这上面花了太多时间......

【问题讨论】:

  • 如果你使用消息属性文件,那么你必须使用bean:message而不是bean:write
  • 是的,我试过了,发布了错误的代码,抱歉。(仍然无法使用)
  • 不能将 JSP 标记嵌套在另一个属性中,类似于不能将 XML 标记嵌套在另一个属性中。这是基本的 JSP 语法。请改用 JSP EL。如果由于某种原因您使用的是不允许这样做的过时容器,请改用 rt-expr 标签。

标签: java jsp jstl struts struts-1


【解决方案1】:

你可以使用struts标签来使用代码

<bean:define id="regionId"><bean:message key="region"/></bean:define>
<html:option value="<%=regionId%>"><%=regionId%></html:option>

或者更好地使用 JSTL

<fmt:message key="region" var="regionId"/>
<html:option value="${regionId}">${regionId}</html:option>

【讨论】:

    【解决方案2】:

    我看到了一个“超过”符号,它什么也没有关闭。

    <html:option value="<bean:write name='region'/>">
      <bean:write name="region"/>
    </html:option>
    

    我想您在该选择中有多个选择,所以您的代码可能应该是这样的:

      <html:select property="Language"> 
          <logic:iterate id="RegionSelection" name="Regionlist" scope="session" type="RegionForm"> 
                <html:option value="<bean:write name='RegionSelection' property='RegionName'/>"> 
                          <bean:write name='RegionSelection' property='RegionName'/> 
                </html:option> 
          </logic:iterate> 
      </html:select> 
    

    【讨论】:

    • 它不工作。它抛出一个错误:开始标签(
    • 你不能像这样将 JSP 标签嵌套在另一个属性中;这是基本的 JSP 语法。
    猜你喜欢
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多