struts2 类型转换流程

来源:互联网 发布:新长征路上的摇滚知乎 编辑:程序博客网 时间:2024/04/20 18:21

 当客户端提交表单内容之后,首先根据<s:form action = "pointConverter">struts.xml中找有没有action的名字有叫pointConverter的,发现有,则struts2就知道这个请求由类com.test.action.PointAction的一个对象来处理我们的请求,流程转换的PointAction中了,产生这个类的实例,当这个实例生成以后,首先根据客户端表单中name属性来得到他们的值,把这些值呢一一的调用set()方法,符给里面的每一个属性,当她调用每一个属性的set()方法之前,struts2会自动检查有没有一个自定义的类型转化,当没有自定义的类型转换的时候,她就按照自己默认的行为进行类型转化,然而当她发现(在这个action的同一个包中检查)我们的某一个属性有自定义的类型转换(发现有一个.propertiesPointAction-conversion.properties)时,她就知道你是要通过自定义的类型转化来实现这个功能,然后就转 入到.properties文件中去找你想要转化的属性,指定要用哪个类去进行转化(point = com.test.converter.PointConverter)继而根据你的指定流程跳转到指定的类(PointConverter.java)中,生成一个对象,接着判断你转化的方向是哪个,当把point 回时,接着流程就转向 pointAction里面,通过set()方法将返回接收,到现在客户端所提交的内容已完成转化,并且完整赋值,接着执行execute()方法,再次转到struts.xml中,找到相应的页面,流程转到output.jsp中,(无自定义类型转换的)相应属性调用 PointAction.javaget()方法得到值输出,(自定义类型转换的)相应属性输出前又要检查到有自定义的类型转化,流程又转到.properties文件中去找到用于转化的那个类PointConverter.java,在PointConverter.java中,再次判断执行方向,将结果包装成对象返回到output.jsp页面输出。