ssh,如何在jsp页面中判断struts2的action中对象属性的属性在数据库中是否为空
如:action类中代码为publicclassAextendsActionSupport{privateUserManagerum;privateUseruser;pu...
如:
action类中代码为
public class A extends ActionSupport{
private UserManager um;
private User user;
public String getUser(){
return user;
}
public void setUser(User user) {
this.user= user;
}
public String getUm(){
return um;
}
@Resource(name="um")
public void setUm(User um) {
this.um= um;
}
@Override
public String execute() throws Exception {
this.user=cm.load(id);
return "success";
}
算了,代码比较简单就不贴了
在User的实体类中有Userid,username和password等属性
那么我该如何在jsp也面中使用struts的标签或其他方法判断username在数据库里是否为空呢?
我知道struts2中有个<s:if>的标签,但是不知道这种情况test该怎么写,请前辈高手求助,因为是自学, 所以没其他人问了
像这样写之后:<s:if test="${User .username}==null">空值</s:if>
<s:else>${User.username}</s:else>
在控制台还会出现不同的错,有的时候是这样的:
org.apache.jasper.JasperException: /companys/company_danwei.jsp(37,1) According to TLD or attribute directive in tag file, attribute test does not accept any expressions
有的时候则是这样的.
java.lang.ClassNotFoundException: org.apache.jsp.companys.company_005fdanwei_jsp
我test里用el表达式的时候就帮我标黄线了,是不是得另外导包才能用。
字数受限... 展开
action类中代码为
public class A extends ActionSupport{
private UserManager um;
private User user;
public String getUser(){
return user;
}
public void setUser(User user) {
this.user= user;
}
public String getUm(){
return um;
}
@Resource(name="um")
public void setUm(User um) {
this.um= um;
}
@Override
public String execute() throws Exception {
this.user=cm.load(id);
return "success";
}
算了,代码比较简单就不贴了
在User的实体类中有Userid,username和password等属性
那么我该如何在jsp也面中使用struts的标签或其他方法判断username在数据库里是否为空呢?
我知道struts2中有个<s:if>的标签,但是不知道这种情况test该怎么写,请前辈高手求助,因为是自学, 所以没其他人问了
像这样写之后:<s:if test="${User .username}==null">空值</s:if>
<s:else>${User.username}</s:else>
在控制台还会出现不同的错,有的时候是这样的:
org.apache.jasper.JasperException: /companys/company_danwei.jsp(37,1) According to TLD or attribute directive in tag file, attribute test does not accept any expressions
有的时候则是这样的.
java.lang.ClassNotFoundException: org.apache.jsp.companys.company_005fdanwei_jsp
我test里用el表达式的时候就帮我标黄线了,是不是得另外导包才能用。
字数受限... 展开
4个回答
展开全部
亲,你从数据库中把数据提取出来赋到实体类里,(不管有没有数据都可以提取赋值)然后再判断,如果你想在action里判断,这样子:
if(user.username == null ){
System.out.print("username为空")
}
如果你想在JSP页面里判断,这样子:
<s:if test="${User .username}==null">
<a>username的值为空</a>
</s:if>
<s:else><s:property value="username"/></s:else>
希望可以帮到你,望采纳!
补充:你还可以这样子,在action里面再加一个属性,比如:
private String bj;//一个标记(get set 方法就不写了)
在action里判断如果user.username为空,就可以给给这个标记赋为“0”,不为空为“1”,在页面中直接判断bj的值就可以了。呵呵 这下应该能满足LZ的要求了吧。
if(user.username == null ){
System.out.print("username为空")
}
如果你想在JSP页面里判断,这样子:
<s:if test="${User .username}==null">
<a>username的值为空</a>
</s:if>
<s:else><s:property value="username"/></s:else>
希望可以帮到你,望采纳!
补充:你还可以这样子,在action里面再加一个属性,比如:
private String bj;//一个标记(get set 方法就不写了)
在action里判断如果user.username为空,就可以给给这个标记赋为“0”,不为空为“1”,在页面中直接判断bj的值就可以了。呵呵 这下应该能满足LZ的要求了吧。
更多追问追答
追问
其实我昨天也用el表达式试了半天,我测试了几次,在控制台还会出现不同的错,有的时候是这样的: According to TLD or attribute directive in tag file, attribute test does not accept any expressions(字数受限了写不下了)
追答
先试试这个吧,有的时候EL表达式回报一些我也讲不好的错,或许是属性绑定出了问题。再试试,加油!
展开全部
test里面的是表达式,跟java里面的用法差不多,具体的我没测试,不过${User.username==null}和${User.username}==null都可以,你可以试试楼上的答案
更多追问追答
追问
我test里用el表达式的时候就帮我标黄线了,是不是得另外导包才能用。
追答
不是的,那你考虑一下#User.username==null或者%User.username==null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<s:if test="${User .username}==null">空值</s:if>
<s:else>${User.username}</s:else>
追问
这么用还是出错了
我test里用el表达式的时候就Myeclipse帮我标黄线了,是不是得另外导包才能用。指向黄线提示是这样的- Invalid attribute (test).
追答
不用啊
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<!--用这个之前别忘记加Struts标签库 page属性-->
<c:if test="${username not empty }">
<!--要怎样.......-->
</c:if>
<c:if test="${username not empty }">
<!--要怎样.......-->
</c:if>
更多追问追答
追问
加了,问题已经解决了谢谢.
追答
那满意答案还不是我。。。伤心了。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询