[Java Web]Struts2加起来(一个)

Struts2环境配置

  1. 进口Struts2的需要jar包
  2. 在WEB-INF/classes(src)文件夹下创建struts.xml文件
  3. 在web.xml文件里加入Struts过滤器信息

经常使用配置文件

  1. struts.xml:用于存放Action映射关系、设置Struts配置信息
  2. web.xml:用于配置容器的Struts过滤器,一般配置例如以下:
    <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>
  3. struts-default.xml:Struts2的默认配置信息,一般不建议改动
  4. default.properties:Struts2的默认设置信息。相同不建议改动

Action

Struts2的核心功能,一般由两部分组成:struts.xml的Action映射和使用Java编写的Action实体类。在struts.xml中通常使用<action>、<result>、<package>等一系列标签完毕Action的映射,它们的属性分别有:

  1. package


    属性


    是否必须


    描写叙述


    name



    包名。作为其他包应用本包的标记


    extends



    设置本包继承其他包


    namespace



    设置包的命名空间


    abstact



    设置为抽象包

  2. action

    属性


    是否必须


    描写叙述


    name



    请求的Action名称


    class



    Action处理类相应详细路径


    method



    指定Action中的方法名


    converter



    指定Action使用的类型转换器

  3. result

    属性


    是否必须


    描写叙述


    name



    Action返回视图名称。默觉得success


    type



    返回结果类型,默觉得dispatcher

一个简单地Action映射能够写成:

<package name="admin" extends="struts-default">
	<action name="welcome" class="struts.action.WelcomeAction">
		<result>/welcome.jsp</result>
	</action>
</package>

Action实体类须要继承ActionSupport类而且重写他的execute的方法(或者其它的方法,无參返回String类型而且与action标签中method属性相应就可以)。而且返回与result标签name属性相应的字符串。与上面配置相应的实体类为:

public class WelcomeAction extends ActionSupport {
	public String execute() {
		return SUCCESS;
	}
}

动态方法调用(DMI)

一个Action中仅能配置一个method在实际应用中十分不方便,Struts2支持在url中指定调用Action类的不同方法。格式为"Action名!方法名"。

在使用此功能前须要在struts.xml中加入例如以下代码开启DMI:

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>

之后在Action类中加入返回值为String类型的相应方法就可以轻松调用。

通配符(wildcard)

Struts2支持通配符操作。使得在须要配置大量action时通过约定格式降低工作量。它的使用方法是使用"*"取代easy变换的单词,然后用{n}取出。n代表第n个通配符。比如一个程序须要有4个Action。名称分别为DogAction、CatAction、BirdAction和FishAction。

假设依照之前的方法则须要配置4个action映射关系。可是使用通配符后仅仅须要以下一个action就可以:

<action name="buy*" class="struts.action.{1}Action">
		<result>/pay.jsp</result>
</action>

通配符的作用域很广,通过action的name能够改变method、class和result的结果等。常常使用能够节约很多时间。可是须要事先良好的一致性格公式。

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

时间: 2024-10-13 15:58:24

[Java Web]Struts2加起来(一个)的相关文章

Java Web(2):第一个 Servlet 程序

Servlet 是 Java 服务端程序,Servlet 程序是运行在服务器上的 Seervlet 程序代码: package g.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequ

JAVA web编程经验之: 一个请求一个事务

对于一个web请求,你会开启几个事务呢? 或许你没注意过吧. 又或许你不会对代码,性能要求太高,所以.... 一个请求一个事务, 因为一个事务往往和一个数据库连接关联, 如果开启了多个事务的话,也就意味着多个数据库连接, 性能不高吧? 前提 1.项目的代码结构分层如下: web层 ->  service层 -> infrastructure层(或DAO层) 2.所有事务都添加在 service层, 通过AOP(或其他类似的技术)实现 先看代码(一个Spring Controller 的调用代码

JAVA Web.xml 加载顺序

web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context-param></context-param> 2.紧接着,容器创建一个ServletContext(上下文),这个WEB项目所有部分都将共享这个上下文. 3.容器将<context-param></context-param>转化为键值对,

[Java Web]Struts2基础总结(三)

OGNL表达式 OGNL(Object-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言,使页面更简洁.主要用法有: 访问值栈中action的属性 username = <s:property value="username"/> 访问值栈中的对象的属性(需要get set方法) <s:property value="user.age"/> | <s:property value="

[Java Web]Struts2解决中文乱码问题

1.设置struts的字符编码,可以在struts.xml中增加以下代码: <constant name="struts.i18n.encoding" value="GBK" /> 或者找到struts的默认配置文件,位置在 struts2-core-2.3.16.3.jar 里面 org.apache.struts2 包中的 default.properties 文件.修改以下配置: ### This can be used to set your d

java web项目初始化启动一个java方法

项目中需要一些初始化数据,或者加载中断的任务. 首先在web.xml中配置信息,配置在<web-app>中: <servlet> <servlet-name>Init</servlet-name> <servlet-class>monitor.util.InitSystemServlet</servlet-class> <load-on-startup>4</load-on-startup> </serv

做一个完整的Java Web项目需要掌握的技能

原文链接:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看

做一个完整的Java Web项目需要掌握的技能[转]

转自:http://blog.csdn.net/JasonLiuLJX/article/details/51494048 最近自己做了几个Java Web项目,有公司的商业项目,也有个人做着玩的小项目,写篇文章记录总结一下收获,列举出在做项目的整个过程中,所需要用到的技能和知识点,带给还没有真正接触过完整Java Web项目的同学一个比较完整的视角,提供一个所谓的"大局观",也以便于同学们更有针对性地学习.当然,这里所用到的例子项目是非常初级,简单的项目,所以大神们就可以不用往下看了.

Java Web入门学习路线图的规划

Java作为学习编程开发入门语言,可能对于许多新手来说可能有点摸不着北,做位一名有几年开发经验的老鸟,希望给一些新人分享经验,当然其他老鸟如果有什么意见可以指出,我也会努力纠正. 本人工作是有关Java Web 开发,所以我会以Java Web标准开发去做一个标准,当然Java 能做的事情很多,包括Android,Java Me等,后期只要我们努力可以学习更多,更深的我也说不了,我现在只谈谈怎么去入门,至于登堂入室,大家有了套路以后,都能够达到.我写这个初衷,是因为我本来是一名非计算机专业的学生