2010-11-24 14 views
0

Struts 1を使用する従来のコードをリファクタリングしていますが、Actionクラスで設定したパラメータを取得するのが困難です。ここで私は私のJSPで使用しているコードは次のとおりです。Struts 1でJSTLを使用してリクエストスコープ付き変数を取得する方法

私はアクションクラス内の変数submissionFailureを設定したが、私は

<c:out value="${requestScope[cardHolderZipCode]}" />

または

<c:out value="${requestScope.property[submissionFailure]}" />

をしようとすると、しかし、何も出力されません。

私は私のJSPに次のコードを入れて、私はrequestScope地図で値を見ることができます:

<b><i>Request Scope</i></b><br/> <c:forEach items="${requestScope}" varStatus="status" var="parameter"> <c:out value="${parameter}"/><br/><br/>
</c:forEach>

をしかし、私はまだ変数を取得することはできません。誰かが私を助けることができるか、私はちょうどI-D-10-Tの瞬間を持っていますか?

答えて

1

私の一部ではI-D-10-Tの瞬間でした。私はあまりにも頑張っていた。私が使用したコードは以下の通りです:

<c:choose> 
    <c:when test="${submissionFailure}"> 
     <%-- Do something --%> 
    </c:when> 
    <c:otherwise> 
     <%-- Do something else --%> 
    </c:otherwise> 
</c:choose> 
1

ActionクラスがJavaBeanでない可能性があります(submissionFailureフィールドにゲッターがありません)。 From the Struts1 reference

最初に、ActionForm Beanには引数なしのコンストラクタ が必要です。フレームワークでは というフォームBeanクラスの新しい インスタンスを動的に作成することができるため、 が必要です。 フレームワークは もフォームビーンの プロパティ(要求 パラメータ)を設定するので、これは厄介な制限ではありません。 です。

第二には、自分のフォームBean のフィールドは、パブリックgetterとsetter JavaBeansの 仕様書に記述命名設計 パターンに従っ 方法を供給 ことにより、フレームワークが利用できるようにしています。これが解決しない場合は、あなたがあなたにあなたのActionクラスの関連部分を掲示する検討すべきである

private {type} fieldName; 

public {type} getFieldName() { 
    return (this.fieldName); 
} 
public void setFieldName({type} fieldName) { 
    this.fieldName = fieldName; 
} 

: は フォームBeanのプロパティのそれぞれについて、以下のイディオムを使用することを意味することを、ほとんどのユーザーのためにより良いデバッグを可能にするための質問。

関連する問題