日期:2014-05-17  浏览次数:20754 次

理解不了的语句?有谁遇到过?
public class UserAction extends ActionSupport{
public String login(){
//session.setAttribute(name, name);
session = ServletActionContext.getRequest().getSession();

if(session == null){
return "input";
}

user.setName(name);
user.setPassword(password);
if (user.getName() == null || user.getName().trim().equals("")) {
addFieldError("wrong", "请输入用户名称");
return "input";
}

if (user.getPassword() == null || user.getPassword().trim().equals("")) {  
  addFieldError("wrong", "请输入密码");  
  return "input";
}

User u = null ;
//检查用户名是否存在
u = (User)userManager.exist(user.getName());
if((u != null) && (u.getPassword().equals(password))){
return "success" ;
}else{
return "fail" ;
}
}
}

struts.xml文件中的配置:
<action name="user" class ="com.bbs.action.UserAction" method="login">
<result name="input">
login-input.jsp
</result>


在上面的logion方法中,我判断session如果为空,返回“input”.struts.xml文件中指定“input”结果是跳转到login-input.jsp页面。

我在index.jsp页面中添加一个链接<a href="user">,这样一点击链接,session是空的,就跳转到了logion-input.jsp页面。可是很奇怪的是,因为现在在logion-input.jsp中还没有输入内容,userAction就直接提示“请输入用户名称”。按理说,session为空,返回“input”,login方法就结束了。它为什么还会向下执行,提示“请输入用户名称”错误呢?
有没有人遇到同样的问题?我实在是理解不了呀!有哪位大侠给解释解释!

------解决方案--------------------
有链接有和服务器交互 session怎么可能为空呢
------解决方案--------------------
session不为null啊!session代表的是会话,不可能是的。session.getParameter("xxx")可能是空的
------解决方案--------------------
我想你搞错了
session 并不为空、

你在
if(session == null){
//这里打印 你会发现这个判断没有进来
 return "input";
 }
而是在下面的判断用户名的那里才判断但空,同样是转到logion-input.jsp页面
------解决方案--------------------
发现我在你另一个帖子里回复的被无视了。。。
http://topic.csdn.net/u/20120730/15/85020d36-6165-4170-a4bb-c1e6aa52ab80.html