关闭

Struts2学习(每天一点进步)

标签: strutsjavastruts2.0namespace
131人阅读 评论(0) 收藏 举报
分类:


1.在package中属性namespace在设置的时候,可以把命名空间加上(例如我设置namespace属性值为java:<package name="helloWord" extends="struts-default"   namespace="/java">)



下面是不成功的浏览器情况地址输入:



则在浏览器地址栏上请求的时候是这样的:http:xxx/项目名/java/servletpath(servletpath是servlet的路径),默认的不写namespace表示不加命名空间(默认的是“/”)

下面是成功加入的情况/java,这样才能访问正常:



大概了解上面的package暂时到这里,后面补充。

2.首先看下图:



在action中,有name,class,method三个属性,这里首先注意name的值与其对应的是一个jsp的请求,如下图:



class与method都是后来加上去的,不加也可运行,这个calss=“com.opensymphony.xwork2.ActionSupport”存在的地方是:struts-default.xml中的最后:default-class-ref默认的类指向,有一类:ActionSupport,这个类中有一个方法:execute(),返回值是:SUCCESS

所以了解action中不写class和method的情况。

3.再看下result结果。

result中属性name默认值是:success(如这样写的情况:<result>/WEB-INF/XXX/`````/XXX.jsp</result>)

这个结果的存在,与action中的method返回值对应起来,依照第二点的第一张图片看到<result>中没写任何内容,其实这里有一个默认值

<result name="success">,这个success字符串的来历就是action中class默认的ActionSupport类中的execute方法返回值。


看一下下图的描述:


可以看出rusult结果的变化性质与action有关,一个action可能有多个结果,比如在页面注册的时候:有成功,失败
那么如何区分这样的结果呢,用result中的name来区分子节点,用type表示结果,这个结果我暂时理解为经过处理
之后,转向view层给浏览器端的一个页面回应。


经过上面的3点,了解下这个数据传输的一个大体过程:
浏览器端发送请求数据参数-》servletpath-》返回响应
struts2在中间数据的控制作用
具体的:struts2把请求参数的值(这里用一个表单作为例子)映射到当前一个个属性里面set方法。(当前理解为一个.java文件
,还是.class文件?)
为何能实现这样的映射呢?
struts2中有一个拦截器(具体位置:在struts2-default.xml中<intercepter-stack name="defaultStack">中的
<interceptor-ref name="params"/>)帮助我们取得传送过来的用户请求参数。
那么传过来之后?经过处理?在浏览器端得到的响应数据怎么取得呢?
这里有一个例子:
客户端注册信息有一个name,我写的是:李四

若注册成功,我们显示他注册信息,跳转页面:

好了我们看下这个跳转页面的jsp:

直接获取!!!!!
这个producuName在三个地方用到,这里跳转页面有一个,第二个在servletpath路径下的
java文件中set方法也有一个,再有在用户注册页面form表单的<input type="text" name="producuName"/>也有。
跳转页面的jsp:中可以写:<%<%=request.getAttribute("producuName") %>说明从一个对象中获取到属性
值,那么这个request被重写?如何重写的?

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:539次
    • 积分:48
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档