3

%{#request.contextPath}Struts2 の s:a タグ内では機能しません。(具体的にはStruts 2.2.1。)それを機能させる方法はありますか? 他の Struts2 タグで動作します。

コンテキスト パスが「/websites」である Struts 2 プロジェクトの JSP ファイルの 2 行を次に示します。

<s:a href="%{#request.contextPath}/clickme" theme="simple">Click here.</s:a>
<s:form method="post" action="%{#request.contextPath}/submitme" theme="simple"></s:form>

出力は次のとおりです。

<a href="/clickme">Click here.</a>
<form id="submitme" name="submitme" action="/websites/submitme" method="post"></form>

コンテキスト パスはアンカーから離れていますが、フォームには含まれていることに注意してください。

PSは Struts2 タグで許可されていない${#pageContext.request.contextPath}ため、ここでは使用できません。${}その上、私は一貫性を保とうとしています。また${}、出力を自動エスケープしないため、一般的に回避しようとします。

ありがとう!

4

2 に答える 2

1

これは機能するはずです:

<s:set id="contextPath"  value="#request.get('javax.servlet.forward.context_path')" />
<s:a href="%{contextPath}/clickme" theme="simple">Click here.</s:a>

ただし、これを行うことは想定されていません。URLが必要な場合は、次の<s:url>タグを使用してください。

<%-- Without specifying an action --%>
<s:url id="myUrl" value="clickme" />
<s:a href="%{myUrl}" theme="simple">Click here.</s:a>

<%-- With an action --%>
<s:url id="myUrl" action="clickme" />
<s:a href="%{myUrl}" theme="simple">Click here.</s:a>

ちなみに、フォームのアクション属性のコンテキストパスは必要ありません。

<s:form method="post" action="submitme" theme="simple"></s:form>
于 2010-10-19T07:58:31.567 に答える
1

Struts 2 はサポートしていELますか?

あれば使えます${request.contextPath}が……。

于 2010-10-18T19:14:41.137 に答える