2

JSP 変数を Struts2 変数に変換するにはどうすればよいですか?

私は次のことを試しました:

<%=scoredDocument%>
<s:push value="scoredDocument"/>
<s:push value="#scoredDocument"/>
<s:push value="%{scoredDocument}"/>
<s:push value="${scoredDocument}"/>
<s:push value="#page.scoredDocument"/>
<s:push value="%{#page.scoredDocument}"/>

<display:column title="Study Code" sortable="true">
    <s:property value="id"/>

一番多いエラーは

原因: タグ 'push'、フィールド 'value': スタックにプッシュする値を指定する必要があります。例: 人 - [不明な場所]

4

2 に答える 2

1

<s:push><s:property>タグを囲む必要があります。また

<s:push value="#attr.scoredDocument">
    <display:column title="Study Code" sortable="true">
        <s:property value="id"/>
    </display:column>
</s:push>

#attr? WTFストラット?文書化さえされていません!https://struts.apache.org/release/2.0.x/docs/jsp.html

于 2013-11-27T03:14:35.667 に答える
1

pushタグには属性が必要であり、初期化する必要があります。valueそうしないと、JSP エラーが表示されます。空の文字列で値を事前に初期化できる他のタグとは異なり、JSP は文句を言いません。

OGNL 式は、Struts タグの他の多くの属性と同様に、この属性で評価され、値を解決できない場合は を返しますnull。この値はpushタグには受け入れられず、例外がスローされます。このエラーは、OGNL 式を介してスクリプトレット変数の値に別の方法でアクセスしようとする誤解を招きますが、残念ながらその方法はどれも機能しませんでした。

スクリプトレット式には、タグの本文でのみ使用でき、文字列に変換される Struts タグで使用する場合に 1 つの落とし穴があります。この例のように

<s:set var="scoredDocument"><%=scoredDocument%></s:set>

pushタグで同じことを行うことはできません。その後、文字列化されたバージョンの#scoredDocumentOGNL 式を使用できます。

于 2013-11-27T13:44:03.717 に答える