【web开发学习笔记】Structs2 Action学习笔记(一个)

1、org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和运行

2、

  <filter-mapping>
      <filter-name>struts2</filter-name>
      <url-pattern>/*</url-pattern>
  </filter-mapping>

url-pattern约定熟成仅仅写/*,不是必需写*.action

3、

	<package name="default" namespace="/" extends="struts-default">
	     <action name= "hello">
	         <result>
	         	/Hello.jsp
	         </result>
	     </action>
    <span style="white-space:pre">	</span></package>

namespace="/"和訪问的路径意义相应;

/hello.action

訪问了action。给了我们result的结果。

默认的action能够省略。

4、关联structs源码和java docs

jar文件右键代->properies->Java Source Attachment

设置源代码

D:/Program Files/struts-2.1.6/src/core/src/main/java

javadoc 文档

file:/D:/Program Files/struts-2.1.6/docs/struts2-core/apidocs/

设置xml提示:

a)window – preferences – 搜索 catalog – add

b)选择key type为URI

c)key: http://struts.apache.org/dtds/struts-2.0.dtd

d)location: 相应的dtd文件。位于struts-core包中,解压开。指定相应位置,如D:/Program Files/struts-2.1.6 \lib\struts2-core-2.1.6\struts-2.0.dtd

5、structs执行机制

client -> url -> Http请求 -> Tomacat -> 查找相应的Webapplication -> web.xml -> filter doFilter方法->

	  <filter>
		  <filter-name>struts2</filter-name>
		  <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
	  </filter>
	  <filter-mapping>
		  <filter-name>struts2</filter-name>
		  <url-pattern>/*</url-pattern>
	  </filter-mapping>

->參考struct.xml -> 查找相应的namespace -> 查找相应的action -> 查找相应的result -> 反馈result -> 请求Forwad给目标文件

	  <package name="default" namespace="/" extends="struts-default">
		<action name="index">
			<result>
				/index.jsp
			</result>
		</action>
	 </package>

6、namespace决定了action的訪问路径,默觉得""。能够接收全部路径的action

namespace能够写为/,或者/xxx,或者/xxx/yyy,

相应的action訪问路径为/index.action,/xxx/index.action。或者/xxx/yyy/index.action.

namespace最好也用模块来进行命名

   <constant name="struts.devMode" value="true" />
    <package name="front" extends="struts-default" namespace="/front">
        <action name="index">
            <result>/Namespace.jsp</result>
        </action>
    </package>

     <package name="main" extends="struts-default" namespace="">
        <action name="index">
            <result>/Namespace.jsp</result>
        </action>
    </package>

struct.xml分析

package作用:避免action的重名和冲突问题;

namespace="/front",必须以斜杠开头,namespace最好也用模块来进行命名;

不写namespace,等效于namespace = "",意味着仅仅要找到action,全都交给

namespace处理。

流程:先找相应路径下的action进行匹配。假设没有的话找namespace为空的action。

假设还没有找到action则会报错;

7、 详细视图的返回能够由用户自定义的Action来决定;

详细的手段是依据返回的字符串找到相应的配置项,来决定视图的内容;

	<constant name="struts.devMode" value="true" />
	<package name="front" extends="struts-default" namespace="/">
		<action name="index" class="com.struts2.front.action.Index">
			<result name="success">
				/ActionIntroduction.jsp
			</result>
		</action>
	 </package>

详细Action的实现能够是一个普通的java类。里面有public String execute方法就可以或者实现

Action接口;

    package com.bjsxt.struts2.front.action;
    import com.opensymphony.xwork2.Action;
    public class IndexAction1 implements Action {
	@Override
	public String execute() {
		return "success";
	}
    }

配置分析:

<class="com.bjsxt.struts2.front.action.Index">

struct.xml -> 找到相应的class -> 实例化对象 -> 运行相应的execute()方法

运行过程:

读到xml -> action是class -> 找到class对象(每次訪问必须new一个对象) ->

当不配置class的时候,默认的class是ActionSupport。

ActionSupport源代码

   public String execute() throws Exception {
	        return SUCCESS;}

最经常使用的是从ActionSupport继承。优点在于能够直接使用Struts2封装好的方法

    package com.struts2.front.action;
    import com.opensymphony.xwork2.ActionSupport;
    public class IndexAction2 extends ActionSupport {
	@Override
	public String execute() {
		return "success";}
    }

原因:ActionSupport内部已经为我们封装了很多能够直接调用的方法,在子类中能够直接使用。

以上是根据麻石兵云集了来自老师的教程。

版权声明:本文博客原创文章,博客,未经同意,不得转载。

时间: 2024-10-27 14:04:16

【web开发学习笔记】Structs2 Action学习笔记(一个)的相关文章

【web开发学习笔记】Structs2 Action学习笔记(一)

1.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter准备和执行 2. <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> url-pattern约定熟成只写/*,没必要写*.action 3. <

【web开发学习笔记】Structs2 Action学习笔记(二)

action学习笔记2-有关于action method的讨论 Action执行的时候并不一定要执行execute方法,可以在配置文件中配置Action的时候用method=来指定执行哪个方法 也可以在url地址中动态指定(动态方法调用DMI)(推荐) 方法一 <struts> <constant name="struts.devMode" value="true" /> <package name="user" e

【web开发学习笔记】Structs2 Action学习笔记(三)action通配符的使用

action学习笔记3-有关于通配符的讨论 使用通配符,将配置量降到最低,不过,一定要遵守"约定优于配置"的原则. 一:前端htm <前端代码html> </head> <body> <a href="<%=context %>/actions/Studentadd">添加学生</a> <a href="<%=context %>/actions/Studentdel

Java Web开发及应用软件方向的学习计划

从接触计算机以来,一直抱有很浓厚的兴趣.我并不擅长与人交际,与机器对话可能更有性格方面的优势.虽然我很想做出一些改变,但总得需要时间和历练,暂时也只能这样了~ 一直很向往代码的神秘,在梦之站待过两年时间后更是对程序猿的生活抱有幻想,我觉得我适合做这件事情,也很有兴趣.中途我去为考研准备了一段时间,但后来我发现我对读研似乎没有很大的愿望,不是因为考研难,只是遵循了自己真正的想法.没有更高的学历,又出身一个不太牛逼的一本,将来的生活是无法预测的,我根本不确定是否能像某人说得那样走向成功.但现实如此,

【web开发学习笔记】Structs2 Action学习笔记(两)

action学习笔记2-大约action method讨论 Action运行的时候并不一定要运行execute方法,能够在配置文件里配置Action的时候用method=来指定运行哪个方法 也能够在url地址中动态指定(动态方法调用DMI)(推荐) 方法一 <struts> <constant name="struts.devMode" value="true" /> <package name="user" ext

全端Web开发 使用JavaScript与Java 阅读笔记

计算机科学领域只有两大难题:缓存失效和命名. REST(Representational State Transfer)技术,他建议一种Web服务消息传递的风格. 第一章:因变而变 企业家总在寻求变化,他们适应变化,并把它当作一种机遇. J2EE和JSP经过完善变成了JEE和JSF. 现代的客户端-服务器架构里,服务器更大程度上负责相应客户端的请求,提供资源的访问方式(通常使用XML 和JSON交换信息).在过去的服务器驱动模型中,页面(和与之相关的数据)都在服务器端生成完毕,一起返回客户端在浏

搭建java web开发环境、使用eclipse编写第一个java web程序

开发工具:eclipse-jee-juno-SR2-win32-x86_64(请自行官网下载) 使用服务器:apache-tomcat-7.0.35-windows-x64(请自行官网下载) 打开 eclipse : 在打开之前压迫先安装JDK1.7 因为eclipse需要JDK 步骤阅读 2 找到'window' 下 'Preferences’ 单击‘Preferences’ 步骤阅读 3 找‘Preferences‘ 找到 Server --- Rntime Evironment 步骤阅读

Java Web学习(3):Win7 64位操作系统搭建Java Web开发环境

一搭建Java Web开发环境的总体概览 工欲善其事必先利其器.学会搭建Java Web开发环境是学习JSP动态网站开发的最基本技能之一.主要介绍在 Windows 7 64位操作系统下搭建Java Web开发环境的过程,主要包括JDK的安装与配置.Tomcat的安装与配置. Eclipse IDE for Java EE Developers的安装与配置. 在这里推荐使用的: 1)Java  JDK 8.0 2)Server   Tomcat 8.0 3)IDE   Eclipse IDE f

spring boot框架学习6-spring boot的web开发(2)

本章节主要内容: 通过前面的学习,我们了解并快速完成了spring boot第一个应用.spring boot企业级框架,那么spring boot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义spring mvc的配置呢?这些我们在公司都需要用的.这些怎么解决呢?在接下来的小节详细讲解这些.好了,现在开启spring boot的web开发第一节 本节主要: 1:InternalResourceViewResolver讲解 2:自动配置静态