Struts 2插件<s:submit>在标签中渲染html表达式

时间:2015-06-16 22:25:47

标签: html jsp struts2 submit-button

我尝试使用HTML修饰符标记呈现提交按钮

ApplicationResources.properties文件中的

label.ok=<u>O</u>K

然后我的JSP代码是

<s:form class="form-group " method="POST" id="profileform" theme="bootstrap" cssClass="form-horizontal" action="go.asociate.addactivities.action">
......
    <div class="row">
        <div class="col-md-12 btn-toolbar">
            <button type="button" class="btn btn-default pull-right custombtn" accesskey="c" onclick="javascript:location.href='go.home.action';">
                <s:text name="label.cancel"></s:text>
            </button>
            <s:submit class="btn btn-default pull-right custombtn" accesskey="o" key="label.ok"></s:submit>
        </div>
    </div>
</s:form

问题是它在提交按钮中呈现文字键名值<u>O</u>K。有没有人知道解决这个问题的正确语法?

1 个答案:

答案 0 :(得分:3)

要在提交按钮中使用HTML,它必须是"button"类型,因为按钮有一个正文,而<input type="submit" />不是

;

<s:submit type="button" value="%{getText('label.ok')}" />

但这还不够;它将被翻译为

<button value="&lt;u&gt;O&lt;/u&gt;K" type="submit">
    &lt;u&gt;O&lt;/u&gt;K
</button>

因为内置逃逸。

<s:property />中,您可以通过设置escapeHtml="false"来禁用它,<s:submit />不提供此选项;

要解决此问题,只需在按钮正文中使用<s:text />

<s:submit type="button">
    <s:text name="label.ok" />
</s:submit>

这很可能是唯一的方法,但它会起作用,并且会被转移到

<button value="Submit" type="submit">
    <u>O</u>K
</button>