[struts2]类型转换笔记

来源:互联网 发布:财务报表数据 编辑:程序博客网 时间:2024/04/24 12:09
 很早就接触到了struts框架,但是没有系统的学过这技术,也不太了解,据网上介绍大家都很推崇这项技术,所以学习J2EE的期间,就不得不学习struts框架了。目前struts出了2.1.16版本,其版本已和1.X版本有着本质上的区别,struts2 框架据我目前所知道有以下几下几大好处:类型转换、表单验证、国际化支持、处理表示分开等,当然还有其它很多的好处,这就有待继续学习了。
struts2类型转换是它的一个主要功能之一。它的流程如下图
1、struts2的一些基本
例:
login.jsp(新建一个JSP页面)
导入struts2的标签<%@ taglib prefix="s" uri="/struts-tags" %>
下面添加一个表单
结果页面result.jsp
新建一个LoginAction类,继承ActionSupport
有成员变量以及他们的set、get方法:
struts.xml

下面来分析下上面的代码,先看struts.xml中的内容。pachkage中的name属性,表示了该project。在该package中定义了一个action,name属性为login,调用class路径为com.test.action.LoginAction,即上面定义的LoginAction类。result中属性name="success"表示了,当页面回一个success结果时跳至result.jsp页面。这样通过struts.xml将LoginAction类与login.jsp页面关联起来。其中login.jsp中<s:form action="login">将该表单与struts.xml中名为login的action关联。

程序是如何运作的呢?当我们访问login.jsp,输入username与password,按submit提交后,程序调用LoginAction中各个set方法,讲表单中对应的值赋值给对应的成员变量,注(与页面中的同名)。(这里因为没有写自己的类型转化,所以通过struts2提供的默认的类型转化完成,下面我会做具体说明)。完成了表单的提交后,页面通过validate方法进行相关验证,该方法需要我们overwrite(比如,我们判断username不为空等等。),完成了validate之后,通过execute方法,返回一个result,如返回SUCCESS,同去struts.xml中的该action中查找对应的result进行页面的跳转,如上代码,则我们跳转至result.jsp,并且,result.jsp通过LoginAction中的get方法,获得各成员变量显示出之前我们提交的内容。

2、类型转化
之前提到,在set方法之前隐含了类型转化。页面提交,我们获得的所有内容都是String类型的,而在set方法中,我们要set的成员,并不一定是String类型,所以我们需要一定的类型转化。
例:我们要输入一个Point(x,y),则我们需要对其进行类型转换。
首先,我们在工程下新建一个Point类,成员变量int x,y;已经相对应的set,get方法。
新建一个input.jsp页面

...............

详情:http://blog.sina.com.cn/s/blog_5cf5d2690100dd5q.html