我的jsp页面代码
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <form action="login.action" method="post"> <input name="username"> <input type="password" name="password"/> <input name="age"/> <input name="insertdate"/> <input type="submit" /> </form> </body> </html>
我的struts.xml配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="login" extends="struts-default"> <action name="login" class="com.action.UserAction"> <result name="success">index.html</result> </action> </package> </struts>
我的 UserAction
1 public class UserAction extends ActionSupport implements ModelDriven{ 2 @Autowired 3 private UserService service; 4 5 private Userinfo userinfo; 6 7 public void setUserinfo(Userinfo userinfo) { 8 this.userinfo = userinfo; 9 } 10 11 @Override 12 public String execute() throws Exception { 13 System.out.println(userinfo.getUsername()); 14 service.login(); 15 if(service!=null)return "success" ; 16 else return "false"; 17 } 18 19 public Object getModel() { 20 if(userinfo == null){ 21 userinfo = new Userinfo(); 22 } 23 return userinfo; 24 } 25 }
现在问题是 我上面输出了 userinfo.getUsername
可是 值为null
input的name有误, 应该用javabean的name 比如:name="User.username"
一开始 就试过了。 User.username 可是不行。 后来发现是提交的数据的问题。 我的insertdate 是date类型的数据。 前台提交到后台是支持自动转型的。 可是 假如是date类型的数据 那么就不支持了。 所以报错。修改一下。 不传date;类型的数据就可以了。
@情不知所起一往而深: 呃,没注意到数据类型的问题