Struts2基本使用(三)--数据交互
Struts2中的数据交互
在Struts2中我们不必再使用request.getParameter()这种方式来获取前台发送到服务器的参数。
我们可以在服务器端的Java类中直接声明一个和前台发送数据的同名变量即可,然后生成它的set/get方法即可以实现前后台数据的交互。
假如我们在前台页面中的表单如下:
<form method="post" action="demo!register.action"> username:<input type="text" name="username"><br /> password:<input type="password" name="password"><br /> <input type="submit" value="注册"> </form>
在服务器端的Java类中我们直接声明私有的同名变量就可以获取到前台发送到服务器端的参数
private String username; private String password; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }
set/get方法不需要们自己写可以通过右键Java类——>Source——>Generate Getter And Setter来自动生成
通过这种方式我们就可以实现数据的交互,在使用过程我们要注意
1.在Java类中声明的变量名称要和前台发送数据的名称互相对应
2.在Struts2中方法不要带有参数
3.在前台数据访问服务器是通过set方法来实现数据的获取,服务器通过get方法向前台页面返回数据,数据返回前台之后我们可以通过EL表达式来同名获取
一个完整示例
index.html内容如下:
<form method="post" action="demo!register.action"> username:<input type="text" name="username"><br /> password:<input type="password" name="password"><br /> <input type="submit" value="注册"> </form>
新建一个success.jsp内容如下:
hello ${username} your password is ${password}.
struts.xml内容如下:
<package name="demo" extends="struts-default"> <action name="demo" class="Action.Handler"> <result name="success">success.jsp</result> </action> </package>
新建包,包名Action在包中新建Java类,类名Handler,总之Java文件要和struts.xml中action的class互相对应。Handler.java如下:
private String username; private String password; public String register() throws Exception{ return "success"; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; }
register方法中return的"success"通过struts.xml配置可以知道显示success.jsp页面,在页面中我们EL表达式显示我们输入的信息