struts2教程,Struts2教程3:struts.xml常用配置解析
各位老铁们好,相信很多人对struts2教程都不是特别的了解,因此呢,今天就来为大家分享下关于struts2教程以及Struts2教程3:struts.xml常用配置解析的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
struts2 HelloWorld
第一步,安装tomcat6.jdk1.6.(这是我的环境,应该不是必须的)
第二步,index.html,作用是跳转到helloworld.action,代码如下:
<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META HTTP-EQUIV="Refresh" CONTENT="0;URL=example/HelloWorld.action">
</head>
<body>
<p>Loading...</p>
</body>
</html>
第三步,example目录下的HelloWorld.jsp,代码如下:
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<head>
<title><s:text name="HelloWorld.message"/></title>
</head>
<body>
<h2><s:property value="message"/></h2>
<h3>Languages</h3>
<ul>
<li>
<s:url id="url" action="HelloWorld">
<s:param name="request_locale">en</s:param>
</s:url>
<s:a rel="external nofollow" rel="external nofollow" href="%{url}">English</s:a>
</li>
<li>
<s:url id="url" action="HelloWorld">
<s:param name="request_locale">es</s:param>
</s:url>
<s:a rel="external nofollow" rel="external nofollow" href="%{url}">Espanol</s:a>
</li>
</ul>
</body>
</html>
第四步,example包下的java原文件HelloWorld.java,代码如下:
package example;
/**
*<code>Set welcome message.</code>
*/
public class HelloWorld extends ExampleSupport{
public String execute() throws Exception{
setMessage(getText(MESSAGE));
return SUCCESS;
}
/**
* Provide default valuie for Message property.
*/
public static final String MESSAGE="HelloWorld.message";
/**
* Field for Message property.
*/
private String message;
/**
* Return Message property.
*
*@return Message property
*/
public String getMessage(){
return message;
}
/**
* Set Message property.
*
*@param message Text to display on HelloWorld page.
*/
public void setMessage(String message){
this.message= message;
}
}
第五步,example包下的java文件ExampleSupport.java.代码如下:
package example;
import com.opensymphony.xwork2.ActionSupport;
/**
* Base Action class for the Tutorial package.
*/
public class ExampleSupport extends ActionSupport{
}
第六步,WEB-INF下的web.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts Blank</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
第七步,WEB-INF/classes目录下的struts.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<constant name="struts.devMode" value="false"/>
<include file="example.xml"/>
<!-- Add packages here-->
</struts>
第八步,WEB-INF/classes目录下的example.xml,代码如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="example" namespace="/example" extends="struts-default">
<action name="HelloWorld" class="example.HelloWorld">
<result>/example/HelloWorld.jsp</result>
</action>
<!-- Add actions here-->
</package>
</struts>
第九步,WEB-INF/classes/example目录下的package.properties,代码就一句:
HelloWorld.message= Struts is up and running...
第十步,WEB-INF/classes/example目录下的package_es.properties,西班牙问的,代码也就一句:
HelloWorld.message=�truts est?bien!...
结束.好累.给分.多给.谢谢
Struts2教程3:struts.xml常用配置解析
使用<include>标签重用配置文件
在Struts中提供了一个默认的struts xml文件但如果package action interceptors等配置比较多时都放到一个struts xml文件不太容易维护因此就需要将struts xml文件分成多个配置文件然后在struts xml文件中使用<include>标签引用这些配置文件这样做的优点如下
结构更清晰更容易维护配置信息
配置文件可以复用如果在多个Web程序中都使用类似或相同的配置文件那么可以使用<include>标签来引用这些配置文件这样可以减少工作量
假设有一个配置文件文件名为newstruts xml代码如下
<?xmlversion= encoding= UTF?><!DOCTYPEstrutsPUBLIC//ApacheSofareFoundation//DTDStrutsConfiguration//EN dtd><struts><packagename= demo extends= struts default><actionname= submit class= action MoreSubmitAction><resultname= save>/result jsp</result><resultname= print>/result jsp</result></action></package></struts>
则struts xml引用newstruts xml文件的代码如下
<?xmlversion= encoding= UTF?><!DOCTYPEstrutsPUBLIC//ApacheSofareFoundation//DTDStrutsConfiguration//EN dtd><struts><includefile= newstruts xml/><packagename= test extends= struts default>……</package></struts>
大家要注意一下用<include>引用的xml文件也必须是完成的struts的配置实际上<include>在引用时是单独解析的xml文件而不是将被引用的文件插入到struts xml文件中
action的别名
在默认情况下 Struts会调用动作类的execute方法但有些时候我们需要在一个动作类中处理不同的动作也就是用户请求不同的动作时执行动作类中的不同的方法为了达到这个目的可以在<action>标签中通过method方法指定要指行的动作类的方法名并且需要为不同的动作起不同的名子(也称为别名)如下面代码所示
<?xmlversion= encoding= UTF?><!DOCTYPEstrutsPUBLIC//ApacheSofareFoundation//DTDStrutsConfiguration//EN dtd><struts><packagename= demo extends= struts default><actionname= test class= action MyAction>……</action><actionname= my class= action MyAction method= my>……</action></package></struts>
上面代码的两个动作的class属性都指向同一个类 name为这个类起了两个动作别名 test和my在动作my中使用了method属性指定要要运行的方法名为my
在MyAction类中必须要有my方法代码如下
packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupport{……publicStringexecute()throwsException{//处理test动作的代码}publicStringmy()throwsException{//处理my动作的代码}……}
除了在struts xml中配置别名还可以通过请求参数来描述指定动作(并不需要在struts xml中配置)请求参数的格式如下
//localhost/contextPath/actionName!method action
关于通过请求指定动作的详细内容请参阅笔者写的《Struts教程处理一个form多个submit》
为action指定参数
在struts中还可以为action指定一个或多个参数大家还记着struts x是如何设置的action参数不?在struts x中可以使用<action>标签的parameter属性为其指定一个action参数如果要指定多个就只能通过逗号()或其他的分隔符将不同的参数隔开而在struts中可以通过<param>标签指定任意多个参数代码如下
<actionname= submit class= action MyAction><paramname= param>value</param><paramname= param>value</param><resultname= save>/result jsp</result>……</action>
当然在action中读这些参数也非常简单只需要象获取请求参数一样在action类中定义相应的setter方法即可(一般不用定义getter方法)如下面的代码将读取param和param参数的值
packageaction;import opensymphony xwork ActionSupport;publicclassMyActionextendsActionSupport{privateStringparam;privateStringparam;publicStringexecute()throwsException{System out println(param+param);}publicvoidsetParam(Stringparam){this param=param;}publicvoidsetParam(Stringparam){this param=param;}……}
当struts在调用execute之前 param和param的值就已经是相应参数的值了因此在execute方法中可以直接使用param和param
选择result类型
在默认时标签的type属性值是 dispatcher(实际上就是转发 forward)开发人员可以根据自己的需要指定不同的类型如redirect stream等如下面代码所示
<result name= save type= redirect>/result jsp</result>
这此result type可以在struts core jar包或struts源代码中的struts default xml文件中找到在这个文件中找到<result types>标签所有的result type都在里面定义了代码如下
<result types><result typename= chain class= opensymphony xwork ActionChainResult/><result typename= dispatcher class= apache struts dispatcher ServletDispatcherResult default= true/><result typename= freemarker class= apache struts views freemarker FreemarkerResult/><result typename= header class= apache struts dispatcher HttpHeaderResult/><result typename= redirect class= apache struts dispatcher ServletRedirectResult/><result typename= redirectAction class= apache struts dispatcher ServletActionRedirectResult/><result typename= stream class= apache struts dispatcher StreamResult/><result typename= velocity class= apache struts dispatcher VelocityResult/><result typename= xslt class= apache struts views xslt XSLTResult/><result typename= plainText class= apache struts dispatcher PlainTextResult/><! DeprecatednameformscheduledforremovalinStruts ThecamelCaseversionsarepreferred Seeww><result typename= redirect action class= apache struts dispatcher ServletActionRedirectResult/><result typename= plaintext class= apache struts dispatcher PlainTextResult/></result types>
全局result
有很多时候一个<result>初很多<action>使用这时可以使用<global results>标签来定义全局的<result>代码如下
<struts><packagename= demo extends= struts default><global results><resultname= print>/result jsp</result></global results><actionname= submit class= action MoreSubmitAction>……</action><actionname= my class= action MoreSubmitAction method= my>……</action></package></struts>
lishixinzhi/Article/program/Java/ky/201311/27860struts框架学习有什么好的推荐书
Struts 2权威指南:基于WebWork核心的MVC开发(附光盘)
作者:李刚编著出版社:电子工业出版社出版时间:2007年09月
本书所介绍的Struts 2已经完全超出了Struts 1框架原有的高度,Struts 2建立在Struts 1和WebWork两个框架整合的基础之上,因此提供了更多优秀的机制。虽然Struts 1目前还未被完全淘汰,但Struts 1所表现出来的缺陷...
¥79.00¥58.10折扣:74折节省:¥20.90
--------------------------------------------------------------------------------
精通Struts:基于MVC的Java Web设计与开发(附光盘)
作者:孙卫琴编著出版社:电子工业出版社出版时间:2004年08月
Struts是目前非常流行的基于MVC的Java Web框架。本书详细介绍了在最新的Struts1.1以及不久将推出的Struts1.2版本上设计和开发Java Web应用的各种技术。本书第1章到第3章为入门篇,通过两个Struts应用实例,引导读者把...
¥49.00¥36.79折扣:75折节省:¥12.21
--------------------------------------------------------------------------------
精通Java Web整合开发:JSP+AJAX+Struts+Hibernate(附光盘)
作者:刘斌编著出版社:电子工业出版社出版时间:2007年11月
本书详细介绍了以JSP、AJAX、Struts、Hibernate相结合的轻量级Java EE应用开发技术。针对读者的不同学习阶段,共分基础篇、进阶篇、提高篇与实践篇四大部分循序渐进地进行讲解。第1-3章为基础篇,重点讲解基于开源架...
¥79.00¥59.25折扣:75折节省:¥19.75
--------------------------------------------------------------------------------
整合STRUTS+HIBERNATE+SPRING应用开发详解(附光盘)
作者:李刚编著出版社:清华大学出版社出版时间:2007年11月
本书介绍如何整合Struts+Hibernate+Spring进行J2EE开发,所有实例都基于Eclipse IDE开发,引领读者快速进入基于Java Web的J2EE应用领域。本书主要介绍Struts、Hibernate、Spring的基础知识,如何整合这3个开源框架进行...
¥79.00¥59.25折扣:75折节省:¥19.75
--------------------------------------------------------------------------------
轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发(含光盘1张)
作者:李刚著出版社:电子工业出版社出版时间:2007年04月
本书所介绍的内容是作者多年J2EE开发经验的总结,内容涉及三个开源框架:Struts、Hibernate和Spring,还介绍了Tomcat和Jetty两个开源Web服务器的详细用法,以及J2EE应用的几种常用架构。本书不仅仅是一本J2EE入门图...
¥65.00¥48.75折扣:75折节省:¥16.25
--------------------------------------------------------------------------------
精通J2EE-Eclipse.Struts.Hibernate.Spring整合应用案例(含盘)
作者:计磊,李里,周伟编著出版社:人民邮电出版社出版时间:2006年08月
本书较为全面地介绍J2EE Web应用开发的程序设计技术。书中首先介绍相关的知识点,引导读者进入J2EE Web技术的世界。然后讲解网上购物子系统、公告管理系统、网上书店、BBS系统、信息发布平台、学生课程及成绩管理系统...
¥69.00¥51.75折扣:75折节省:¥17.25
--------------------------------------------------------------------------------
Struts,Hibernate,Spring集成开发宝典(附光盘)
作者:陈天河等编著出版社:电子工业出版社出版时间:2007年01月
本书以Struts,Hibernate,Spring为核心详细地讲解了这三个组件的基础知识和基本使用方法,并通过一系列集成开发实例讲解了这三个组件在J2EE项目中的应用。本书对每一个组件的讲解都是以入门级实例开始的,然后对...
¥69.00¥51.75折扣:75折节省:¥17.25
--------------------------------------------------------------------------------
精通JavaEE项目案例——基于Eclipse Spring Struts Hibernate(含盘)
作者:刘乃丽编著出版社:人民邮电出版社出版时间:2008年01月
本书是一本完全实战型的Java EE开发书籍。全书讲解了9个系统的实现方法,包括网上购物子系统、公告管理系统、网上书店、BBS系统、信息发布平台、学生课程及成绩管理系统、个性化定制系统、网上文件管理系统、航空票务...
¥85.00¥63.75折扣:75折节省:¥21.25
--------------------------------------------------------------------------------
精通SOA:基于服务总线的Struts+EJB+Web Service整合应用开发(附光盘)
作者:梁爱虎编著出版社:电子工业出版社出版时间:2007年07月
Java的出现,实现了跨操作系统平台的程序开发,以Java为基础的J2EE技术已经成为因特网服务技术的主流。然而,以J2EE为基础的SOA架构技术必将成为因特网服务技术的热点。笔者希望通过本书帮助广大Java开发人员快速从以...
¥46.00¥34.50折扣:75折节省:¥11.50
--------------------------------------------------------------------------------
Java开发利器:Struts Web设计与开发大全(珍藏版)(附CD-ROM光盘一张)——Java开发利器
作者:邱哲,王俊标,马斗编著出版社:清华大学出版社出版时间:2006年02月
本书由浅入深、循序渐进地介绍了如何使用Apache著名开源软件Struts来构建Web应用,同时介绍了一些构建Web应用时常用到的开源软件的使用方法,如Hibernate、Lucene等。全书分为5篇,共22章,内容涵盖了Java Web应用...
¥55.00¥41.25折扣:75折节省:¥13.75
--------------------------------------------------------------------------------
Struts与Hibernate实用教程——构建基于MVC模式的高效Java Web应用(附CD-ROM光盘一张)
作者:邬继成编著出版社:电子工业出版社出版时间:2006年09月
Struts和Hibernate是当前非常流行的Java Web应用框架,由于它们很好地实现了MVC设计模式以及具有使用简便、开源免费的特点,在国内外获得越来越广泛的应用。本书将结合实际例子由浅入深地介绍Struts和Hibernate的基本...
¥35.00¥26.30折扣:75折节省:¥8.70
--------------------------------------------------------------------------------
Struts实用开发指南——基于MVC+MyEclipse的Java Web应用开发(附光盘)
作者:高红岩编著出版社:科学出版社出版时间:2007年07月
这是一本讲解如何使用Struts框架开发Java Web应用程序的实用性图书,书中在具体讲解Struts开发技术的同时,结合MVC模式与MyEclipse工具,演示了实际应用项目开发的全过程。全书共分10章,内容以实用为主,技术和实例...
¥36.00¥27.00折扣:75折节省:¥9.00
--------------------------------------------------------------------------------
深入浅出 Struts
作者:(加)库尼亚瓦姆著,王建桥等译出版社:人民邮电出版社出版时间:1900年01月
Struts是Java Web应用首选的MVC框架。本书是世界畅销的Struts著作之一,深入浅出地探讨了许多能帮助程序员们编写高效Struts应用程序的技巧,主要内容包括利用动作表单进行输入验证、HTML标签库、输入验证和数据...
¥45.00¥33.75折扣:75折节省:¥11.25
--------------------------------------------------------------------------------
项目实践精解:基于Struts-Spring-Hibernate的Java应用开发(附光盘)
作者:梁立新编著出版社:电子工业出版社出版时间:2006年08月
本书通过一个完整的电子商务应用的设计和开发项目,引领读者学习Struts-Spring-Hibernate架构下完整的开发体系,以及Struts-Spring-Hibernate的各个组件在项目开发中的实际应用。通过对该项目各个功能模块需求分析、系...
¥52.00¥39.00折扣:75折节省:¥13.00
--------------------------------------------------------------------------------
Jakarta Struts编程(第二版)
作者:(美)凯文斯(Cavaness,C.)著,O’Reilly Taiwan公司译,林琪改编出版社:中国电力出版社出版时间:2005年08月
自本书第一版发行以来,Struts开源项目变得越来越受欢迎。尽管这项技术令人振奋,但是它的说明文档却仍然少得可怜——大多数的指南都太简单,那些要编写复杂Web应用程序的开发人员根本找不到所需的关键信息。本书第二...
¥52.00¥39.00折扣:75折节省:¥13.00
--------------------------------------------------------------------------------
J2EE开源编程精要15讲-整合Eclipse、Struts、Hibernate和Spring的Java Web开发
作者:邬继成编著出版社:电子工业出版社出版时间:2008年01月
本书内容主要来自作者多年的软件开发和教学经验,通过实例由浅入深地介绍Eclipse、Struts、Hibernate和Spring的基本原理和应用,以及它们的整合应用,是一本强调实践技能的实用性指导图书。本书的内容主要包括:开...
¥39.79¥29.85折扣:75折节省:¥9.94
--------------------------------------------------------------------------------
精通Struts-Java流行服务器.框架.工具及整合应用(含盘)
作者:戎伟,张双编著出版社:人民邮电出版社出版时间:2006年10月
本书以Struts框架为基础,介绍了J2EE模型中各层流行技术与Struts框架的整合,符合当今业界流行的软件开发趋势。全书共分15章,内容涵盖Struts框架的组成、J2EE架构方式、Struts框架与表示层技术整合、Struts框架与中间...
¥59.00¥44.30折扣:75折节省:¥14.70
--------------------------------------------------------------------------------
程序天下--J2EE整合详解与典型案例:一本书搞定Struts+Spring+Hi
作者:思志学等编著出版社:电子工业出版社出版时间:2008年01月
本书是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了J2EE的体系结构和如何利用开源框架Struts、Spring和Hibernate进行J2EE程序的开发,从而帮助软件开发人员快速掌握J2EE的设计思...
¥79.80¥59.90折扣:75折节省:¥19.90
--------------------------------------------------------------------------------
J2EE电子商务系统开发从入门到精通——基于Struts和Hibernate技术实现(附光盘)
作者:陈松编著出版社:清华大学出版社出版时间:2007年05月
Struts架构和Hibernate对象,关系映射工具相结合开发Web Service应用,是目前主流的Web开发模式。本书详细介绍了Struts和Hibernate基础理论,并大量地采用与实例相结合的方式,形成本书“理论+案例,理论案例相辅相承...
¥49.00¥36.75折扣:75折节省:¥12.25
--------------------------------------------------------------------------------
Struts基础教程
作者:(美)多雷著,铁手等译出版社:人民邮电出版社出版时间:2007年02月
本书介绍Apache Struts的最新版本。书中以强调实际动手的方法来讲述。第一部分包括Struts基础知识,以及开发人员必备的JSP和servler基础知识;第二部人包含Struts中更加“高阶”的部分,例如Tiles、Validator框架以及...
END,本文到此结束,如果可以帮助到大家,还望关注本站哦!