0

struts2 アプリケーションで動的にセッション オブジェクトを取得しようとしています。

<s:if test="%{#session['resToken'].bookingType == 1}">

resToken で取得できます<s:property value="%{resToken}">..

でも書けない<s:property> within <s:if test="">

二重引用符のエラーが表示されます..

org.apache.jasper.JasperException: /WEB-INF/jsp/booking/banquet/guest-Info-View.jsp(150,40) Unterminated &lt;s:if tag 
4

5 に答える 5

1

私がその権利を読んでいる場合、の値resTokenは実際にはセッション属性の名前ですよね?したがって、次のようなものを試してください${sessionScope[resToken].bookingType}

于 2010-12-29T14:36:01.627 に答える
1

<s:property/>タグの中にタグを入れようとする<s:if/>のは正しい方法ではありません。どちらのタグも、引数として OGNL 式を取ります。したがって、一方に対して機能する場合%{resToken}は、他方に対しても機能するはずです。

そうは言っても、%{#session['resToken'].bookingType}正しいように見えます。その値を出力して、それが何であるかを確認しましたか? も使用できます%{#session.resToken.bookingType}。まず、セッション変数を適切に参照していることを確認してから、値が実際に==1 であることを確認してください。

または、他の人が提案したように JSTL/JSP EL を使用して、次のようにすることもできます。

// i don't remember off the top of my head if it should be == or eq
<c:if test="${sessionScope.resToken.bookingType eq 1}"></c:if>

OGNL リファレンス

于 2010-12-29T15:03:06.663 に答える
1

使えませんか${sessionScope.resToken.bookingType == 1}

于 2010-12-29T13:27:11.070 に答える
0

'resToken'はresTokenと等しくありません。後者は変数であり、最初は文字列です。

単に書く:

<s:if test="%{#session[resToken].bookingType == 1}">

これが機能しない場合は、プロパティタグを使用して式の小さな部分を出力し、何が返されるかを確認してください。

于 2010-12-30T01:57:18.200 に答える
0

私はその解決策を得ました..

最初はresTokenが設定されています

setTest Test 11Test11を確認してください

于 2010-12-31T04:50:26.767 に答える