我使用以下if条件但它不起作用。
当加载jsp页面时,将显示 输出而不检查条件。
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 :(得分: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()
{
...............
}
}