如果jsp中的条件不起作用

时间:2013-02-12 06:04:16

标签: java jsp if-statement struts2 javabeans

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

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

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

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";
        }

2 个答案:

答案 0 :(得分:1)

在版本2中,您错过了分号;

 String output = myclass.Xclass(obj);

尝试print output个值。请尝试以下代码

if(output.trim().equalsIgnoreCase(¨o¨))
{
// your message goes here
}

答案 1 :(得分:1)

为什么要在表示层上放置逻辑,在视图上查看BL并不是一个好习惯。我猜你正在使用struts2框架。然后你应该使用 s:if

更新部分:

您的表单有多长, struts2值堆栈与您的操作一起保存任意数量的数据,并呈现您的请求数据到您的班级,尝试使用 DTO的或将 bean POJO类分开用于各自的表单元素

因为这就是 Struts2 的设计方式,只有通过将您的视图与业务逻辑分开才能实现 MVC模式

您的JSP-Page

 <s:form action="yourAction">

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

在你的行动CLass

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

    getters & setters for form-elements-name

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

    your Business-Logic

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

}