上一篇博客中讲了struts2的配置以及实现了一个简单的helloWorld程序。这一片博客讲一下如何使用get/set函数来自动获取/设置参数值。
1.打开eclipse,新建一个名为SecondLearnStruts2Chap02的Dynamic Web Project;(工程创建方法参考上一篇博客)
2.配置过滤器,这里不再给出代码;
3.新建一个HelloWorldAction类,作为struts2的处理类(类名及该类所在的包名与上一篇博客相同),在类中定义一个name变量,并生成该变量的get和set函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17package com.test.action; import com.opensymphony.xwork2.Action; public class HelloWorldAction implements Action{ private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String execute() throws Exception { System.out.println("执行了Action的默认方法"); return SUCCESS; } }
4.建立struts.xml配置文
1
2
3
4
5<package name="helloWorld" extends="struts-default"> <action name="hello" class="com.test.action.HelloWorldAction"> <result name="success">helloWorld.jsp</result> </action> </package>
5.新建一个helloWorld.jsp:
1
2
3
4
5
6
7
8
9
10
11
12<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> hello ${name }! </body> </html>
6.运行程序,打开浏览器请求hello并传一个值,运行结果如图:HelloWorldAction
神奇的发现,页面中竟然取到了我们在请求时传入的值。
现在总结下程序的流程:我们在处理类HelloWorldAction中定义了一个String类型的名为name变量,并生成了name变量的get和set函数。当我们在浏览器中请求hello,并带着了一个名为name的参数值,拦截器拦截到我们的请求后根据配置把给请求交给HelloWorldAction处理,请求中带了参数值,拦截器会调用HelloWorldAction中同名变量(也就是name变量)的set函数,从而把传入的值赋值给类中的变量。HelloWorldAction类执行默认的execute函数并返回success,根据配置跳转到helloWorld.jsp页面。这个页面上使用$表达式取name变量的值,这里拦截器会执行处理类中同名变量(也就是name变量)的get函数,得到处理类中对应变量的值。
以后的应用中,当需要从前台web页面传值给后台Java程序的某个变量时,前台中只需使用与这个变量同名的参数传值即可(前提是Java程序中的变量一定要生成get和set函数),这样struts2会自动给处理类中的变量赋值。同样的,后台向前台传值时,前台可以直接使用${变量名 }的方式取到处理类中相应变量的值。
1
最后
以上就是瘦瘦网络最近收集整理的关于J2EE系列之Struts2学习笔记(二)---使用get/set方法自动获取/设置参数值的全部内容,更多相关J2EE系列之Struts2学习笔记(二)---使用get/set方法自动获取/设置参数值内容请搜索靠谱客的其他文章。
发表评论 取消回复