1

次の if 条件を使用していますが、機能しません。

jsp ページが読み込まれると、条件をチェックせずに出力が表示されます

  • このコードは、フォームの値を受け取り、それらをobjプロパティに入れ、結果「o」を受け取ったときにXclassに送信する必要があります。

my.jsp

    <jsp:useBean id="obj" class="com.User"/>

    <jsp:setProperty property="*" name="obj"/>

      <%
         String myoutput = myclass.Xclass(obj);
         out.print(myoutput);
         if(myclass.Xclass(obj).equals("output"))
            {
               out.print("message goes here");
            }
      %>

myclass.class

       public String Xclass(User obj){
           return "output";
        }
4

2 に答える 2

1

なぜプレゼンテーション レイヤーにロジックを配置するのですか? BL を表示するのは良い習慣ではありません。struts2 フレームワークを使用していると思います。次に、s:ifを使用する必要があります

更新セクション:

フォームの長さに関係なく、struts2 値スタックは、アクションとともに任意の量のデータを保持し、リクエスト データをクラスにレンダリングします。DTOまたは個別のBeanPOJO クラスをそれぞれのフォーム要素に使用してみてください。

これはStruts2が機能するように設計されているため、これを行うだけで、ビューをビジネスロジックから分離することでMVCパターンを実現できます。

あなたの JSP ページ

 <s:form action="yourAction">

                <s:textfield name="name" label="Name"/>
                   .....
                <s:submit ></s:submit>
    </s:form>

あなたのアクションクラスで

@Action
  public class XYZ{
    private form-elements-name;

    getters & setters for form-elements-name

    ..............

    your Business-Logic

   public String YourLogic()
  {
     ...............
  }

}

于 2013-02-12T06:19:42.240 に答える
1

version2 では、セミコロンがありません。

 String output = myclass.Xclass(obj);

値を試してみてprint outputください。以下のコードを試してください

if(output.trim().equalsIgnoreCase(¨o¨))
{
// your message goes here
}
于 2013-02-12T06:12:02.740 に答える