Struts2学习(每天一点进步)

3 篇文章 0 订阅
3 篇文章 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被重写?如何重写的?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值