1

Struts1 と JSP を使用しています。タグを使用してフォーム プロパティにアクセスできますが<bean:write>、JSTL ではアクセスできません。なぜだめですか?私のフォームはDynaActionForm.

このステートメントは機能します。

<bean:write name="myForm" property="origin"/>

${myForm.map.origin} プレーン バニラが表示されます。

<c:out value="${myForm.map.origin}"/>

これも機能せず、${myForm.origin} プレーン バニラが表示されます。

<c:out value="${myForm.origin}"/>
4

1 に答える 1

4

これは、サーブレット/JSP、JSTL、および/または web.xml のバージョンの不一致がどこかにある場合に発生する可能性があります。Servlet 2.3/JSP 1.2 の間、EL は JSTL 1.0 の一部でした。Servlet 2.4/JSP 2.0 の間に、EL は JSTL から JSP に移動され、JSTL 1.1 は EL なしで出荷されました。web.xml のバージョン宣言は、現在使用されているサーブレット/JSP のバージョンを示しており、ターゲット コンテナーでサポートされている必要があります。

したがって、Servlet 2.4/JSP 2.0 で JSTL 1.0 を使用している場合、または Servlet 2.3/JSP 1.2 で JSTL 1.1 を使用している場合は、まさにこの問題に直面します。また、Servlet 2.4/JSP 2.0 で JSTL 1.1 を使用しているが、web.xml が Servlet 2.3 に準拠していると宣言されている (またはバージョン宣言が含まれていない) 場合も、まさにこの問題に直面します。

すべてはJSTL wiki ページ で説明されています。また、適切な JSTL バージョンへのダウンロード リンクと、適切なバージョン固有の web.xml 宣言の例もそこにあります。

もう 1 つの考えられる原因は<%@page isElIgnored="true"%>、JSP の上または<jsp-config><el-ignored>true</el-ignored></jsp-config>で宣言を行っていることですが、これweb.xmlはあまりにも明白な原因であり、見逃すことはできません。

于 2012-09-13T19:15:55.910 に答える