1

我正在使用以下 if 条件,但它不起作用。

加载 jsp 页面时,将显示输出而不检查条件

  • 代码期望接收表单的值,将它们放在 obj 属性中,并在收到结果“o”时将它们发送到 Xclass,它应该是消息。

我的.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

在 version2 中,您错过了分号 ;

 String output = myclass.Xclass(obj);

尝试值。尝试print output下面的代码

if(output.trim().equalsIgnoreCase(¨o¨))
{
// your message goes here
}
于 2013-02-12T06:12:02.740 回答
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 回答