Struts2学习(四):Action执行的时候发生了什么

  • 时间:
  • 浏览:4
  • 来源:uu快3手机版_uu快3走势图_网游

public void setName(String name) {

this.name = name;

此外肯能我把<s:property value="name" />中value的值改为别的如name1,这时页面出错,一片空白。我接着又把getName土措施改为getName1,这时页面仍然一片空白,肯能取不都还能不能 name属性的值。肯能我把<s:property value="name" />改为

2.在sayHello.jsp的form之外加了一还还有一个多文本框,取名address,在HelloWorld中增加相应的域address、setAddress土措施和getAddress土措施,通过断点测试发现,setAddress土措施不必执行。

1.把setName改为setName1,结果页面输出:Hello null,之后setName1为执行

本文转自 646676684 51CTO博客,原文链接:http://blog.51cto.com/2402766/569970,如需转载请自行联系原作者

}

<s:property value="name1" />,一起去也把getName改为getName1,这麼显示就正常了,你什儿 表明框架会根据属性的名字去调用相应的get土措施。

基于以上测试,我认为在执行action的操作之后,首先会根据请求页面的form表当中所含晒 的参数来调用action中相应的set****土措施,比如说,本例中,form含晒 name属性,之后会在执行execute之情调用setName土措施,而address肯能沒有form中之后 不必调用setAddress土措施.

“分流”是指根据亲戚亲戚朋友所请求的url把request交给某个指定的action来处里。这麼在你什儿 FilterDispatcher中还有之后 哪几种操作呢?在Struts1中亲戚亲戚朋友一个劲要把一还还有一个多ActionForm和一还还有一个多Action相关联,ActionForm中封装了表单的所有值,之后哪几种还能不能 在ActionServlet中完成的,之后亲戚亲戚朋友在action中都还能不能 直接通过ActionForm得到表当中的值,这麼Struts2中又是为什做的呢?亲戚亲戚朋友为什取得哪几种值呢?我发现都还能不能 这麼做:对表单中每一还还有一个多要获取的值,在action中相应添加原来的一还还有一个多域(也只是属性),之后再设置相应的set和get土措施,即采用javabean风格,貌似你什儿 现在比较流行。比方说在前面的例子中,在sayHello.jsp的表单中一还还有一个多多文本域,它的name=”name”,在我的action文件HelloWorld.java中一还还有一个多多域private String name;一起去还分别设置了相应的setName和getName土措施,现在我把setName土措施改为如下:

OK,在浏览器中输入http://localhost:8888/Struts/sayHello.jsp,这时亲戚亲戚朋友发现后台打印出了name:CMTobby,CMTobby是我输入的name的值,这说明setName土措施被执行了,奇怪啊,亲戚亲戚朋友根本这麼显式的调用你什儿 土措施啊,它是哪几种之后调用的呢?现在亲戚亲戚朋友在setName土措施后面 设置一还还有一个多断点,之后再在execute土措施后面 设置一还还有一个多断点,再次运行亲戚亲戚朋友的系统系统进程,结果显示setName土措施在execute土措施前面执行。

       System.out.println("name:"+name);     

在处里完请求之后怎么才能 才能 把用户所请求的值回传到结果页面当中呢?在HelloWorld.jsp中亲戚亲戚朋友用了<s:property value="name" />,嘿嘿,难道又是隐式的调用了getName土措施吗?于是我在HelloWorld.java的getName土措施处设置了一还还有一个多断点,再次运行亲戚亲戚朋友的系统系统进程,岂还能不能 getName被隐式的调用了。

接着,无聊的我又做了之后 测试:

上述机制是还能不能 和亲戚亲戚朋友前面所讨论的BeanUtils的copyProperties土措施一样,实际上之后 ORM框架都采用的你什儿 机制,还能不能 首先得到属性名再调用相应的set肯能get土措施,而还能不能 直接访问的域。