2013-02-12 33 views
1

我使用以下if條件但它不起作用。如果jsp中的條件不起作用

當加載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"; 
     } 
+0

@theunlucky,:DI中添加代碼,請取消選中反對票感謝 – 2013-02-12 06:06:49

+0

請正確提問。提供與問題相關的代碼。 – 2013-02-12 06:06:58

+0

@NikhilAgrawal,對不起的問題進行了更新 – 2013-02-12 06:07:40

回答

1

在版本2,你已經錯過了分號;

String output = myclass.Xclass(obj); 

嘗試printoutput values.Try下面的代碼

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

隊友輸出將顯示在任何的方式 – 2013-02-12 06:19:27

+0

@DanielMorgan,嘗試使用'trimId()''equalsIgnoreCase()'然後讓我知道。 – subodh 2013-02-12 06:20:50

+0

我已經使用過,仍然不檢查條件 – 2013-02-12 06:22:09

1

你爲什麼把邏輯表示層上,它不是一個很好的做法,您的看法BL。我想你正在使用struts2框架。那麼你應該使用S:如果

更新部分:

不要緊多久是你的形式,在Struts2的值棧握着你的任何數量的數據與你的動作和沿渲染您的請求數據類,儘量使用DTO的或單獨POJO類爲你們各自表單元素

因爲這是怎麼Struts2的的設計工作,這樣做只有你可以從你的業務邏輯分離視圖實現MVC模式

你的JSP頁

<s:form action="yourAction"> 

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

在Action類

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

    getters & setters for form-elements-name 

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

    your Business-Logic 

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

}

+0

是的,我正在使用struts2你的建議是什麼?我需要將表單的值作爲對象發送給控制器。 – 2013-02-12 06:20:18

+0

爲什麼不在服務器端執行這些操作,我的意思是struts2-framework是面向操作的框架,檢查服務器端的條件並根據條件顯示相應的視圖。這是mvc的工作原理。 – 2013-02-12 06:24:07

+0

我這樣做是因爲我擁有的表單是一個長表單(超過20個字段),所以這樣更容易將所有字段的對象發送給控制器,而不是單獨發送它們。 – 2013-02-12 06:25:36