struts 数据自动封装的三种方式
首先:定义一个实体类,实现setter、getter 方法
1、在jsp中
第一种:
<!--這里使用jquery 来获得路径-->
<form action="${pageContext.request.contextPath}/LoginUserAction1" method="post">
pusername:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="tijiao">
</form>
首先:定义一个实体类,实现setter、getter 方法
1、在jsp中
第一种:
<!--這里使用jquery 来获得路径-->
<form action="${pageContext.request.contextPath}/LoginUserAction1" method="post">
pusername:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="tijiao">
</form>
第二种:
<!--在jsp上面有這么一句String path = request.getContextPath(); 已经获得了路径,所以我们這里可以直接来使用-->
<form action="<%= path%>"/LoginUserAction2 method="post">
pusername:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="tijiao">
</form>
第三种:(标签实现)
<!--這里的namespace 对应的是struts配置的文件的package的name属性-->
<s:form namespace="/userlogin" action="LoginUserAction3" method="post">
<s:textfield name="user.username"/>username:
<s:psssword name="user.password"/>password:
<s:submit values="提交"/>
</s:form>
注:這里的所有name都应该与实体类的定义一致。
2、在实现类中(下面的是对应上面的)
<!--在jsp上面有這么一句String path = request.getContextPath(); 已经获得了路径,所以我们這里可以直接来使用-->
<form action="<%= path%>"/LoginUserAction2 method="post">
pusername:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="tijiao">
</form>
第三种:(标签实现)
<!--這里的namespace 对应的是struts配置的文件的package的name属性-->
<s:form namespace="/userlogin" action="LoginUserAction3" method="post">
<s:textfield name="user.username"/>username:
<s:psssword name="user.password"/>password:
<s:submit values="提交"/>
</s:form>
注:這里的所有name都应该与实体类的定义一致。
2、在实现类中(下面的是对应上面的)
第一种:public class LoginUserAction1() extends ActionSupport{
private String username;
private String password;
生成setter,getter方法;
实现execute方法
//有很多方法可以操作数据 我们默认重写 父类ActionSupport 来操作数据
public String execute(){
//這里可以直接对username和password进行操作 因为继承了ActionSupport自动封装了数据
//值就是从jsp传递过来的值
//比如说输出
syso(username);
syso(password);
return SUCCESS;
}
private String username;
private String password;
生成setter,getter方法;
实现execute方法
//有很多方法可以操作数据 我们默认重写 父类ActionSupport 来操作数据
public String execute(){
//這里可以直接对username和password进行操作 因为继承了ActionSupport自动封装了数据
//值就是从jsp传递过来的值
//比如说输出
syso(username);
syso(password);
return SUCCESS;
}
}
第二种:public calss LoginUserAction2()extends ActionSupport implement ModelDriver<User>{
private User user=new User();
//生成getter setter方法
//因为实现ModelDriven接口 所以封装的数据是User对象
//這里要实现imolement的一个方法,获取封装的数据放回
public User getModel(){
return user;
}
public String execute(){
//然后這里可以对user进行操作 同上
return SUCCESS;
}
第二种:public calss LoginUserAction2()extends ActionSupport implement ModelDriver<User>{
private User user=new User();
//生成getter setter方法
//因为实现ModelDriven接口 所以封装的数据是User对象
//這里要实现imolement的一个方法,获取封装的数据放回
public User getModel(){
return user;
}
public String execute(){
//然后這里可以对user进行操作 同上
return SUCCESS;
}
}
第三种: public calss LoginUserAction3() extends ActionSupport{
//因为在jsp中数据已经被封装在User对象中
//所以我们定义的属性也是对象
private User user;
//生成getter和setter方法
public String execute(){
//這里对数据操作 跟上面一样
return SUCCESS;
}
}
三种方式可以灵活运用,在实际的操作中慢慢体会吧。
刚刚开始学习框架 有什么不对的或者好的可以改进的 欢迎指教。