Struts2学习(每天一点进步)

原创 2016年05月30日 10:33:39


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被重写?如何重写的?

版权声明:本文为博主原创文章,未经博主允许不得转载。

每天一点进步:hbase预分区和压缩

rowkey是hbase的key-value存储中的key,通常使用用户要查询的字段作为rowkey,查询结果作为value。可以通过设计满足几种不同的查询需求。...

每天一点进步:Spark RDD三大特性

RDD是弹性分布式数据集(Resilience distributes Datasets )的简称,即一个被分区的数据集。RDD的来源只有两种:一种是从内存中的集合和外部存储系统,另外一种是通过转换操...

每天进步一点达——MySQL——myisampack

一、        简介          myisampack是一个压缩使用MyISAM引擎表的工具,一般会压缩40%~70%,当需要访问数据,服务器会将所需要的信息读入到内存中,所以当访问具体记录...

【每天进步一点】2012.04.12

上午       上午刚到实验室的时候,先写完了一个程序,在USACO上一次就pass,虽然比较水,但是还是很开心。然后又打电话跟女朋友沟通了一些感情上的问题,说完之后,感觉心情明显好得多了。要不然...
  • pwpal
  • pwpal
  • 2012年12月10日 18:05
  • 194

每天一点进步:Spark运行模式和原理

在实际引用中,spark应用程序运行模式取决于传递给sparkContext的master环境变量的值。目前所支持的master环境变量由特定的字符串或者URL组成,...

java基础知识---每天进步一点

StringBuffer 和StringBuilder中的两个函数: Java代码   //int indexOf(String str) :返回当前StringBuffer对象中...

每天记录一点 IT技术的进步

今天是2017年7月28日。 研一的旅程刚刚结束       刚刚完成了导师给我安排的科研任务,...

C#每天进步一点--异步编程模式

C#可以有一个简单易用的机制用于异步执行方法,那就是委托。下面我介绍三种模式,对于这三种模式来说,原始线程都发起了一个异步方法,然后做一些其他处理。然而这些模式不同的是,原始线程获取发起的线程已经完成...
  • lprebok
  • lprebok
  • 2014年04月14日 14:48
  • 365

每天都应该有一点进步,changing! 规划!奋三强二,五后出 ,三十黎 or no 黎!

每天都应该尝试去总结在工作中学习到的新知识点,不但能总结下工作,而且还能巩固下这些知识点,当沉淀到一定量的时候自然而然就是一种不可小窥的财富!从今天就开始每天下班后回家就总结当日工作中涉及到的一些新知...
  • BackMe
  • BackMe
  • 2011年07月08日 09:05
  • 1386

每天五个java相关面试题(1)--struts2部分

好啦 好啦。过不了多久我要参加社招啦,每天在博客更新五个java方面的面试题以及参考回答的答案。最近先来框架部分。首先是struts2;开始!1.Struts2工作机制?答: 1、客户端初始化一个指...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Struts2学习(每天一点进步)
举报原因:
原因补充:

(最多只允许输入30个字)