0

Struts 1 を使用する一部のレガシー コードをリファクタリングしています (フレームは使用しないでください)。Action クラスで設定したパラメーターを取得するのに苦労しています。jspで使用しているコードは次のとおりです。

アクションクラスに変数を設定し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>

しかし、私はまだ変数を取得できません。誰か助けてくれませんか、それとも ID-10-T の瞬間を過ごしているだけですか?

4

2 に答える 2

1

ActionクラスがJavaBeanではない可能性があります(つまり、submissionFailureフィールドにゲッターがありません)。Struts1リファレンスから

まず、ActionFormBeanには引数ゼロのコンストラクターが必要です。フレームワークは、クラス名のみを認識しながら、フォームBeanクラスの新しいインスタンスを動的に作成できる必要があるため、これが必要です。ただし、フレームワークはフォームBeanのプロパティ(リクエストパラメータから)も入力するため、これは面倒な制限ではありません。

次に、JavaBeans仕様で説明されているネーミングデザインパターンに従うパブリックgetterメソッドとsetterメソッドを提供することにより、フォームBeanのフィールドをフレームワークで使用できるようになります。ほとんどのユーザーにとって、これは、フォームBeanの各プロパティに次のイディオムを使用することを意味します。

private {type} fieldName;

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

これで問題が解決しない場合は、アクションクラスの関連部分を質問に投稿して、デバッグを改善することを検討してください。

于 2010-11-25T00:10:04.773 に答える
1

私の側ではID-10-Tの瞬間でした。頑張りすぎた。最終的に使用したコードは次のとおりです。

<c:choose>
    <c:when test="${submissionFailure}">
         <%-- Do something --%>
    </c:when>
    <c:otherwise>
         <%-- Do something else --%>
    </c:otherwise>
</c:choose>
于 2010-11-29T16:19:31.870 に答える