开发者学堂课程【Java Web开发系列课程 - Struts2框架入门:属性驱动】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/537/detail/7298
属性驱动
以对象的方式处理表单数据
从前台提交到后台,只要用 action 属性名称与前台表单的属性名称要一致,而且设置get 方法,便于在前台展示它,不管获取数据还是寻找数据,应该把它作为 action 的属性。
以前是作为普通的设计来写,但是不是很好,Java 是以面向对象的形式去编程,这个属性分散,应该是 user 的属性,所以他显然不属于 loginAction,希望以对象的方式处理他,在 action 里仅仅处理 user,LoginAction 处理 user 意义不大。
当然这个 struts 就是这么处理,去找其他的框架就不是这么处理的,直接传参,跟你方法的参数有关系。学习 struts2的规则,遵循规则即可。
新建一个项目,拷贝一个,名字为05struts2_data,把前面两个关掉,清理一下,默认情况发布证明是不对的,改一下。
把它改成05,发布项目,下面应该是有其他的项目,把04给删除。下面 Action 留一个,以后写。
名字为 user,然后 int age,可以看到工作类型转换,再来一个 email,这个方法可以把 get set 生成。
写一个 useraction,在里面可以处理,数据写一个 user,以对象的形式作为创建方法,处理它也需要生成 get set 的方法。
写一个注册,并不是真正的注册,register,返回 Action. SUCCESS,输出这个 user,然后把 user2 string 改一下。
需要把配置也改一下,user, register,这些配置解释不再介绍,改完之后去到 show页面,第一个页面是 register 的页面,第二个是 show 页面,Register 一定是表达数据,用户名,name 写 user. name,user 下面的属性,这个 user 和下面的属性要一致。
public class User
private String name;
private String pwd; I
private int age;
private String email;
public String getName()
return name;
publie void setName(String name)
this, name name;
publie String getPwd(){
名称千万不要第一个小写,第二个大写,值是设置不上去的。曾经做过统计,p是小写的,设值找的是大写的,结果也不报错,其实很简单,改个名字即可,不要犯这种错误。
密码,年龄,邮箱:
<body>
<form action="register. action" method="post">
用户名:< input type="text"name=user.name"<br
<input type="password" name="user. pwd"/><br>
年龄:<input type="text"name="user.age"/><br>
邮箱:<input type="text"name=user. email"><br>
<input type="submit" value="提交"/>
</form>
</body>
show 可以显示 user,注意看一下显示结果。访问一下 register. jsp,年龄23,邮箱写成 ader,报错,找不到 execute。
加上 method,method 也是 register,刷新一下,随便写,没有报错,值没有设置上去,需要自己验证,后台报错失败。
设置正常,后台输出正常,显然是 string 的方法,以对象的形式得到了。表达式调用突出这种方法。
Jsp 页面
<form action="register. action" method="post">
用户名:<input type="text"name=user.name"x<br
密码:<input type=password
name="user.pwd"/>br>
年龄:<input type="text"name=user.age"/br
邮箱:<input type="text"name=user emailbr
<input type=submit"value=提交”/>
</form>
Action 代码
public class UserAction
private User user
/注册
public String register(){
System.out. printIn(user)
rcturn Action. SUCCESS
public User getUser(){
return user;
public void setUser(User user){
this.user=user;
}
}
User 类型
oublic class User
private String name;
private String pwd
private int age
private String email
public String getName(){
return name;
}
public void setName(String name){
this. name =name;
}
public String getPwd(){
return pwd;
}
public void setPwd(String pwd){
this. pwd=pwd;
}
public int getAge(){
把关注点搞清楚