我建了一个user的vo,里面只有name和password,建好了数据库操作的相关文件,在userAdd.jsp页面上
<s:form action="user" method="post">
<s:textfield name="user.name" label="姓名"></s:textfield><br/>
<s:password name="user.password" label="密码"></s:password>
<s:submit value="提交"/>
</s:form>
这样写能把参数存到数据库里头,我想请问一下, 这里面两个name属性必须得这样写吗??我写成name="name"和name="password",Useraction里面都接收不到jsp页面传过来的参数,数据库里全是null,还有其它方法吗,总感觉这样写不太好!!UserAction.java:
package com.ecjtu.struts2.action;import com.ecjtu.struts2.dao.IUserDAOImpl;
import com.ecjtu.struts2.model.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;public class UserAction extends ActionSupport {
private User user = new User();
private IUserDAOImpl userDAO = new IUserDAOImpl();
public String execute() {
System.out.println(user.getName());
System.out.println(user.getPassword());
if("".equals(user.getName()) || "".equals(user.getPassword())){
return ERROR;
} else {
try {
if(userDAO.insert(user)) {
return SUCCESS;
} else {
return ERROR;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return ERROR;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public IUserDAOImpl getUserDAO() {
return userDAO;
}
public void setUserDAO(IUserDAOImpl userDAO) {
this.userDAO = userDAO;
}
}
<s:form action="user" method="post">
<s:textfield name="user.name" label="姓名"></s:textfield><br/>
<s:password name="user.password" label="密码"></s:password>
<s:submit value="提交"/>
</s:form>
这样写能把参数存到数据库里头,我想请问一下, 这里面两个name属性必须得这样写吗??我写成name="name"和name="password",Useraction里面都接收不到jsp页面传过来的参数,数据库里全是null,还有其它方法吗,总感觉这样写不太好!!UserAction.java:
package com.ecjtu.struts2.action;import com.ecjtu.struts2.dao.IUserDAOImpl;
import com.ecjtu.struts2.model.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;public class UserAction extends ActionSupport {
private User user = new User();
private IUserDAOImpl userDAO = new IUserDAOImpl();
public String execute() {
System.out.println(user.getName());
System.out.println(user.getPassword());
if("".equals(user.getName()) || "".equals(user.getPassword())){
return ERROR;
} else {
try {
if(userDAO.insert(user)) {
return SUCCESS;
} else {
return ERROR;
}
} catch (Exception e) {
e.printStackTrace();
}
}
return ERROR;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public IUserDAOImpl getUserDAO() {
return userDAO;
}
public void setUserDAO(IUserDAOImpl userDAO) {
this.userDAO = userDAO;
}
}
或者用模型驱动的方式类似struts1中的actionform,
其实用属性驱动的方式就是省略了actionform,往往actionform中的属性和vo对象中属性重复,
本人还是比较喜欢使用属性驱动方式。
public class UserAction extends ActionSupport implements ModelDriven<User> { private User user = new User(); public User getModel() {
return user;
}
}2.jsp写法:
<s:form action="user" method="post">
<s:textfield name="name" label="姓名"> </s:textfield> <br/>
<s:password name="password" label="密码"> </s:password>
<s:submit value="提交"/>
</s:form>