Struts2的入门案例

合集下载

struts2教程实例

struts2教程实例

struts2教程实例1.第⼀个struts2项⽬建议:参考官⽅配置操作⼀遍,因为技术不断更新,不同版本的struts的类可能不同,⽼版本的多个类可能在新版本中集成了⼀个2.struts2⼯作流程原理2.1步骤1.创建Web Project2.导⼊Jar(使⽤maven控制的话,配置pom.xml)<!--pom配置见 -->3.在web.xml配置struts2的过滤器<filter><filter-name>struts2</filter-name><!--该类会因struts版本不同⽽变化,在struts2.0-2.1.2为org.apache.struts2.dispatcher.FilterDispatcher,在之后版本为下述--> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><!-- 所有的url都会被url过滤器解析 --><url-pattern>/*</url-pattern></filter-mapping>4.创建Struts核⼼xml⽂件5.创建action类继承与ActionSupport6.配置struts.xml<!--详细配置及介绍见:-->2.2流程1、客户端浏览器发出HTTP请求2、该请求被StrutsPrepareAndExecuteFilter接收3、根据struts.xml配置,找到需要调⽤的Action类和⽅法,并通过IoC⽅式,将值注⼊给Aciton4、Action调⽤业务逻辑组件处理业务逻辑5、Action执⾏完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页⾯6、返回HTTP响应到客户端浏览器2.3原理注意:在struts2.1.2后FilterDispatcher被替换为了StrutsPrepareAndExecuteFilter1、客户端初始化⼀个指向Servlet容器(例如Tomcat)的请求2、这个请求经过⼀系列的过滤器(Filter)(这些过滤器中有⼀个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)3、接着被StrutsPrepareAndExecuteFilter(能够拦截请求对象ServletRequest和ServletResponse结合Struts.xml构建独⽴于servlet的ActionContxt)调⽤,StrutsPrepareAndExecuteFilter询问ActionMapper(含有struts.xml中Action配置的name,namespce,result等的HashMap)来决定这个请是否需要调⽤某个Action4、如果ActionMapper决定需要调⽤某个Action,StrutsPrepareAndExecuteFilter把请求的处理交给ActionProxy5、 ActionProxy通过Configuration Manager询问框架的配置⽂件struts.xml,找到需要调⽤的Action类6、 ActionProxy创建⼀个ActionInvocation的实例。

struts2框架快速入门小案例

struts2框架快速入门小案例

struts2框架快速⼊门⼩案例struts2快速⼊门: index.jsp------>HelloAction--------->hello.jsp struts2流程 1.导⼊jar包 struts2的⽬录结构: apps: 例⼦程序 docs:⽂档 lib:struts2框架所应⽤的jar以及插件包 src:源代码 core 它是struts2的源代码 xwork-core struts2底层使⽤了xwork,xwork的源代码 注意:在struts2开发,⼀般情况下最少导⼊的jar包,去apps下的struts2-blank⽰例程序中copy 2.创建index.jsp页⾯ 3.对struts2框架进⾏配置 1.web.xml⽂件中配置前端控制器(核⼼控制器)-----就是⼀个Filter(⽬的:是为了让struts2框架可以运⾏。

) <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> 2.在src下(对应Tomcat的classes下)创建⼀个struts.xml配置⽂件 ,这个是struts2框架配置⽂件(⽬的:是为了struts2框架流程可以执⾏。

) 4.创建⼀个HelloAction类//要求,在HelloAction类中创建⼀个返回值是String类型的⽅法,注意,⽆参数。

【java开发系列】——struts2简单入门示例

【java开发系列】——struts2简单入门示例

【java开发系列】——struts2简单⼊门⽰例上篇推荐:前⾔ 最近正好有时间总结⼀下,过去的知识历程,虽说东西都是⼊门级的,⾼⼿肯定是不屑⼀顾了,但是对于初次涉猎的⼩⽩们,还是可以提供点参考的。

struts2其实就是为我们封装了servlet,简化了jsp跳转的复杂操作,并且提供了易于编写的标签,可以快速开发view层的代码。

过去,我们⽤jsp和servlet搭配,实现展现时,⼤体的过程是: 1 jsp触发action 2 servlet接受action,交给后台class处理 3 后台class跳转到其他的jsp,实现数据展现 现在有了struts2,实现过程变为 1 jsp出发action 2 struts2拦截请求,调⽤后台action 3 action返回结果,由不同的jsp展现数据 下⾯我们看下,需要的jar包 前⾯两个是apache commons的jar包,暂且忽略 freemarker提供了另⼀种展现⽅式 ognl提供了OGNL表达式 struts2-core提供struts2核⼼包 xwork-core由于struts2很多事基于webwork的,因此也需要这个的核⼼包 我们提供了三个jsp登陆界⾯login.jsp1 <%@ page language="java" contentType="text/html; charset=GBK"2 pageEncoding="GBK"%>3 <%@taglib prefix="s" uri="/struts-tags"%>4<html>5<head>6<meta http-equiv="Content-Type" content="text/html; charset=GBK">7<title><s:text name="loginPage"/></title>8</head>9<body>10<s:form action="login">11<s:textfield name="username" key="user"/>12<s:textfield name="password" key="pass"/>13<s:submit key="login"/>14</s:form>15</body>16</html>登陆成功界⾯welcome.jsp<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%><html><head><title><s:text name="succPage"/></title><meta http-equiv="Content-Type" content="text/html; charset=GBK"></head><s:text name="succTip"><s:param>${er}</s:param></s:text><br/></body></html>登陆失败界⾯error.jsp<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="GBK"%><%@taglib prefix="s" uri="/struts-tags"%><html><head><title><s:text name="errorPage"/></title><meta http-equiv="Content-Type" content="text/html; charset=GBK"></head><body><s:text name="failTip"/></body></html> 当login.jsp触发action时,就会向后抬发送login.action的请求,这个请求被后台拦截,交给struts.xml中配置的action处理1<?xml version="1.0" encoding="GBK"?>2<!DOCTYPE struts PUBLIC3 "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"4 "/dtds/struts-2.1.7.dtd">5<struts>6<!-- 指定全局国际化资源⽂件 -->7<constant name="struts.custom.i18n.resources" value="mess"/>8<!-- 指定国际化编码所使⽤的字符集 -->9<constant name="struts.i18n.encoding" value="GBK"/>10<!-- 所有的Action定义都应该放在package下 -->11<package name="test" extends="struts-default">12<action name="login" class="com.test.action.LoginAction">13<result name="error">/error.jsp</result>14<result name="success">/welcome.jsp</result>15</action>16</package>17</struts>下⾯是LoginAction的代码,可以看到成功登陆后,程序把username写⼊session中。

第一个Struts2的实例

第一个Struts2的实例

第一个Struts2的实例本实例的开发工具及语言:eclipse 3.2 + struts2 + tomcat 5.5实现用户登陆功能,在这因没有连接数据库,所以用固定的用户名和密码登陆.用户名:luanmad密码:admin本实例用到的文件及其结构:(看图1)//************************************************************* **********K:/ECLIPSEWORKS/MYFIRSTSTRUTS2│ .classpath (ECLIPSE 自动生成)│ .mymetadata (ECLIPSE 自动生成)│ .project (ECLIPSE 自动生成)│├─.myeclipse (ECLIPSE 自动生成)├─src││ struts.xml│││└─cn│└─struts2│ LoginAction.java│└─WebRoot│ login.jsp│ loginFailure.jsp│ loginSuccess.jsp│├─META-INF│ MANIFEST.MF│└─WEB-INF│ web.xml│├─classes││ struts.xml│││└─cn│└─struts2│ LoginAction.class│└─libcommons-logging-1.0.4.jarfreemarker-2.3.8.jarognl-2.6.11.jarstruts2-core-2.0.11.2.jarxwork-2.0.5.jar//************************************************************* **********1.Tomcat 5.5的具体配置在这里就赘述了,可以上网搜(一大把的)本实例配置用到的TOMCAT 5.5 文件是server.xml.在你安装好的TOMCAT 5.5目录下找到conf的文件夹,下面有一个叫server.xml的文件(如:C:/tomcat 5.5/conf/server.xml),打开此文件进行编辑,在<Host>和</Host>之间加入一句:<Context path="/MyFirstStruts2"docBase="K:/EclipsWorks/MyFirstStruts2/WebRoot"debug="0" reloadable="true" crossContext="true"> </Context>此句是用于让TOMCAT 5.5 找到你的启动程序;2.编写LoginAction.java 文件,用于处理登陆的作息,在(MyFirstStruts2/src/cn/struts2/LoginAction.java)LoginAction.java//************************************************************* **********package cn.struts2;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport{private String name;private String password;public String getName(){return name;}public void setName(String name){ = name;}public String getPassword(){return password;public void setPassword(String password){this.password = password;}public String execute()throws Exception{String path=null;if(name.equals("luanmad") && password.equals("admin")) {path = SUCCESS;}else{path = ERROR;}return path;}//重写一个validate()函数,它用来对用户输入信息的验证,它先于execute()函数执行@Overridepublic void validate(){// 验证用户名和密码是否为空if(null == name || "".equals(name)){this.addFieldError("name", "name is required!");if(null == password || "".equals(password)){this.addFieldError("password", "password is required!");}}}//************************************************************* **********3.配置struts.xml文件(src/struts.xml)struts.xml//************************************************************* **********<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "/dtds/struts-2.0.dtd"><struts><package name="struts2" extends="struts-default"><action name="login" class="cn.struts2.LoginAction"><result name="success">/loginSuccess.jsp</result><result name="error">/loginFailure.jsp</result><result name="input">/login.jsp</result></action></package></struts>//************************************************************* **********4.配置web.xml文件(WebRoot/WEB-INF/web.xml)web.xml//************************************************************* **********<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><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></web-app>//************************************************************* **********5.三个.jsp文件(在WebRoot文件夹下)login.jsp//************************************************************* **********<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/";%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'login2.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"> <!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><s:form action="login" method="post"><s:textfield name="name" label="User Name:"></s:textfield> <s:password name="password" label="Password"></s:password><s:submit label="submit"></s:submit><s:reset label="reset"></s:reset></s:form></body></html>//************************************************************* **********loginSuccess.jsp//************************************************************* **********<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/";%><%@ taglib prefix="s" uri="/struts-tags"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'login2.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"> <!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1>登陆成功!</h1><h2>User Name : <s:property value="name"/><br>Password : <s:property value="password"/></h2></body></html>//************************************************************* **********loginFailure.jsp//************************************************************* **********<%@ page language="java" import="java.util.*" pageEncoding="gbk"%><%String path = request.getContextPath();String basePath = request.getScheme() + "://"+ request.getServerName() + ":" + request.getServerPort() + path + "/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><base href="<%=basePath%>"><title>My JSP 'login2.jsp' starting page</title><meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"><meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"> <!--<link rel="stylesheet" type="text/css" href="styles.css">--></head><body><h1>登陆失败!</h1><h2>用户名或密码错误!</h2></body></html>//************************************************************* **********6.注意别忘了导入STRUTS2的JAR包(用此5个即可)(放在WebRoot/WEB-INF/lib/)下,这是必须的.commons-logging-1.0.4.jarfreemarker-2.3.8.jarognl-2.6.11.jarstruts2-core-2.0.11.2.jarxwork-2.0.5.jar7.如图1同时也要就以上5个JAR包导入Referced Libraries里,这是在ECLIPSE 下编辑时用的.8.此程序可以正常运行,当你配置好时在浏览器上写http://localhost:8080/MyFirstStruts2/login.jsp即可(默认是8080端口)。

Struts2简单示例

Struts2简单示例

Struts2增删改查例子UserBean//要添加set,getpublic class UserBean{private Long id;private String name;private String password;private int age;private Date birthday;private Long sex;private Set<Long> likes;private String des;//描述}public class LikeBean{private Long id;private String name;}FormActionpublic class FormAction{//属性要生成get,set//标记(添加,修改)private String tip;private UserBean userBean;private List<LikeBean> likeList;private List<UserBean> userList;//到列表页面public String list(){userList =new ArrayList<UserBean>();userList.add(new UserBean("abc",19,new Date())); userList.add(new UserBean("def",70,new Date())); userList.add(new UserBean("ghi",40,new Date()));return"list";}//到添加页面public String toAdd(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网")); likeList.add(new LikeBean(new Long(2),"读书")); likeList.add(new LikeBean(new Long(3),"游戏"));tip ="add";return"info";}//添加方法,Struts2会自动把对应的值赋值给userBeanpublic String add(){System.out.println(userBean);return"toList";}//到更新页面,取出值,设置标记public String toUpdate(){likeList =new ArrayList<LikeBean>();likeList.add(new LikeBean(new Long(1),"上网"));likeList.add(new LikeBean(new Long(2),"读书"));likeList.add(new LikeBean(new Long(3),"游戏"));tip ="update";System.out.println("update name:"+userBean.getName()); userBean =new UserBean("update",100,new Date());userBean.setId(new Long(101));userBean.setSex(new Long(2));userBean.setDes("Struts2用户");Set<Long> likes =new HashSet<Long>();likes.add(new Long(2));likes.add(new Long(3));userBean.setLikes(likes);return"info";}//更新方法public String update(){System.out.println(userBean);return"toList";}//删除方法public String delete(){System.out.println("del name:"+userBean.getName());return"toList";}}struts.xml配置<struts><package name="form"namespace="/form"extends="struts-default"> <!-- 使用通配符调用多个方法,method为*对应的字符串 --><action name="userAction_*"class="com.struts2.form.FormAction" method="{1}"><!-- 方法返回的字符串对应name,再转发到页面 --><result name="list">/form/list.jsp</result><result name="info">/form/info.jsp</result><!-- 重定向Action,可以有Action名字和空间,参数 --><result name="toList"type="redirectAction"><!-- 空间参数,不写代表和当前Action同一个空间<param name="namespace">form</param>--><!-- 重定向Action的名称 --><param name="actionName">userAction_list</param><!-- url带的参数,${}是动态参数,值为Action的属性userBean中name的值 --><param name="userName">${}</param><param name="userAge">${userBean.age}</param></result></action></package></struts>jsp页面1.list(列表页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><div><ahref="${pageContext.request.contextPath}/form/userAction_toAdd.action">添加</a></div><div><!-- 判断用户是否为空 --><s:if test="(userList!=null)&&(!userList.isEmpty())"><div>用户列表</div><!-- 遍历用户 --><s:iterator value="#erList"id="u"status="st"><s:property value="#st.index+1"/>&nbsp;<s:property value="#"/>&nbsp;<s:property value="#u.age"/>&nbsp;<!-- 格式化日期 --><s:date name="#u.birthday"format="yyyy-MM-dd HH:mm:ss"/>&nbsp;&nbsp;&nbsp;&nbsp;<ahref="${pageContext.request.contextPath}/form/userAction_toUpdate.action?use=${}">修改</a>&nbsp;&nbsp;&nbsp;&nbsp;<ahref="${pageContext.request.contextPath}/form/userAction_delete.action?userB =${}">删除</a><br/></s:iterator></s:if><s:else><div>无用户</div></s:else></div>.jsp(添加和修改页面)<!-- 添加标签 --><%@ taglib prefix="s" uri="/struts-tags" %><!-- 显示标记(添加/修改) --><s:property value="tip"/><!-- action="userAction_%{tip}"tip为Action中的标记变量 submit不加method --><s:form action="userAction"namespace="/form"method="POST"><!-- userBean.id为Action中属性userBean中id的值 --><s:hidden name="userBean.id"></s:hidden><s:textfield name=""label="用户名"></s:textfield><s:textfield name="userBean.age"label="年龄"></s:textfield><s:textfield name="userBean.birthday"label="生日"><!-- 格式化日期 --><s:param name="value"><s:date name="userBean.birthday" format="yyyy-MM-dd"/></s:param></s:textfield><!-- 密码不能回填 --><s:password name="userBean.password"label="密码"></s:password><s:textarea name="userBean.des"label="描述"cols="35"rows="8"></s:textarea><!-- 这种checkbox显示出来是一行只有一个checkbox<s:iterator value="likeList"><s:checkbox name="userBean.likes" label="%{name}" fieldValue="%{id}"></s:checkbox></s:iterator>--><!-- 这种是一行多个 --><s:checkboxlist list="likeList"name="userBean.likes"listKey="id"listValue="name"label="爱好"></s:checkboxlist><!-- 下拉框<s:select list="likeList" listKey="id" listValue="name" headerKey="-1" headerValue="请选择爱好"></s:select>--><!-- value="1" 设置默认,但是好像设置了不能回填 --><s:radio list="#{'1':'男','2':'女'}"label="性别"name="userBean.sex"></s:radio><s:submit value="%{tip}"id="submitBut"method="%{tip}"></s:submit></s:form>。

struts2入门教程一(环境搭建,基本案例实现)CSDN

struts2入门教程一(环境搭建,基本案例实现)CSDN

Struts2入门初步需掌握1.struts2概述2.struts2环境搭建(第一个struts2的应用程序)3.struts.xml文件配置详解4.struts2请求的URL的搜索路径的顺序概述5.struts2工作原理概述6.struts2指定多个配置文件7.struts2动态方法调用8.使用通配符定义action一:简介Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。

其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。

Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与Servlet API完全脱离开,所以Struts 2可以理解为WebWork的更新产品。

虽然从Struts 1到Struts 2有着太大的变化,但是相对于WebWork,Struts 2的变化很小。

二:环境搭建搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1.找到开发Struts2应用需要使用到的jar文件.下载官网:/download.cgi#struts221解压后:开始学习使用依赖的最基本的jar 包2:编写Struts2的配置文件解压其中一个案例在此目录下找到struts.xml 文件先拷贝到项目的src 下。

再对起进行修改。

删除剩余如下代码:[html]01.<?xml version ="1.0"encoding ="UTF-8" ?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD StrutsConfiguration 2.3//EN" 04."/dtds/struts-2.3.dtd"> 05.06.<struts> 07.08. </struts>无法加载插件。

Struts2详细实例教程

Struts2详细实例教程

Struts2(上)一、经典的MVC模式二、Struts1.x对MVC的实现三、Struts1.x的主要组件和作用组件作用ActionServlet 中央控制器Action 分控制器,调用JavaBean实现业务逻辑,Action可以分为Action、DispatchAction等不同类型ActionForm 封装参数,实现服务器验证,文件上传等Forward 转发到目的地,可以是JSP,也可以是另一个ActionStruts-config.xml 配置文件,配置有ActionForm,Action,Forward等,通过XML解析,然后使用反射技术使用该文件Struts标签库和JSTL类似,和Struts-config.xml、ActionForm、Action等对象可以紧密集成四、Struts1.x 开发实例-登录程序见案例。

五、Struts2(WebWork)的MVCStruts2的MVC架构六、Struts2的主要组件组件作用FilterDispatcher 起中央控制器作用的过滤器Action 处于Model层的Action,调用JavaBean实现业务逻辑struts.xml 核心配置文件,配置有Action、Result等result 和forward类似,转发的目的地,支持多种视图技术。

七、Struts2的实例-登录在MyEclipse环境中建立一个新的web工程,名称“Struts2Login”,存放路径“f:\Struts2Login”。

在Struts2.0.11版本中找到war包struts2-blank-2.0.11.war,解开该war包,在WEB-INF/lib 目录下复制出所有的jar包,这些jar包就是一个Struts2程序所需要的基础jar包,把它们复制到新建的web工程的WEB-INF/lib目录中。

在src目录下建立一个类,包名mypack,类名UserAction,其代码如下:package mypack;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private String username;private String userpass;public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getUserpass() {return userpass;}public void setUserpass(String userpass) {erpass = userpass;}@Overridepublic String execute() throws Exception {if ("Mike".equals(username) && "123".equals(userpass)|| "张三".equals(username) && "abc".equals(userpass))return "success";elsereturn "error";}}在src目录下建立Struts2的配置文件struts.xml,内容如下:<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><!-- 定义包管理配置的action 继承struts-default.xml中的配置 --><package name="actions" extends="struts-default"><!-- 定义Action(login.action) --><action name="login" class="erAction"><!-- 定义转发路径对应的字符串名 --><result name="success">/Success.jsp</result><result name="error">/Error.jsp</result></action></package></struts>修改web.xml,在其中加入一个过滤器,过滤/*路径。

struts2入门案例

struts2入门案例

struts2入门案例Struts2是一种基于MVC架构的Web应用程序框架。

本文将围绕“Struts2入门案例”为主题,向读者介绍如何使用Struts2创建一个简单的Web应用程序。

一、环境准备在开始之前,需要先准备好以下工具和环境:1. Java开发环境2. Struts2框架3. Tomcat服务器二、创建项目1. 打开Eclipse IDE,并选择“File” -> “New” -> “Dynamic Web Project”。

2. 输入项目名,并选择Tomcat服务器。

3. 在项目中创建一个名为“WEB-INF”的文件夹。

4. 在“WEB-INF”文件夹中创建一个名为“lib”的子文件夹。

5. 下载最新版本的Struts2.jar文件,并将其复制到“lib”文件夹中。

三、配置Struts21. 打开“struts.xml”文件。

2. 在<struts>标签中,添加以下代码:```<package name="default" extends="struts-default"><action name="hello" class="com.example.HelloWorldAction"> <result name="success">/hello.jsp</result></action></package>```三、创建Action类1. 在项目包中创建一个名为“com.example”的包。

2. 在“com.example”包中创建一个名为“HelloWorldAction”的Java类。

3. 在Java类中添加以下代码:```package com.example;import com.opensymphony.xwork2.ActionSupport;public class HelloWorldAction extends ActionSupport { private String message;public String execute() throws Exception {message = "Hello World!";return SUCCESS;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}```四、创建JSP文件1. 在Web应用程序的根目录下创建一个名为“hello.jsp”的JSP文件。

第一个struts2实例——HelloWorldpdf

第一个struts2实例——HelloWorldpdf

2、下载struts2包,我的版本是struts-2.3.8-all,解压,打开lib文件夹,里面都是jar文件,全部选中,复 制。
回到 Eclipse,项目下的WebContent-->WEB-INF-->lib目录,粘贴。
3、在 WEB-INF 目录下,新建一个xml文件,文件名web.xml,代码如下:
</filter>
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list> <welcome-file>index.html</welcome-file>
<display-name>Struts Blank</display-name>
<filter> <filter-name>struts2</filter-name> <filter-
class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filterclass>
public class tohello {
private String message; public String getMessage() {
return message; } public void setMessage(String message) {

通过代码实例跟我学Struts2框架从入门到精通——Struts2框架入门示例

通过代码实例跟我学Struts2框架从入门到精通——Struts2框架入门示例

1.1通过代码实例跟我学Struts2框架从入门到精通——Struts2框架入门示例1.1.1Struts2 框架的入门示例1、新建立一个Web项目(1)项目名称为sshwebcrm、并且添加JSTL标签库但最好将项目的J2EE系统库的版本选择为J2EE5.0版,以便能够应用MyEclipse的可视化帮助。

(2)设置编译环境为JDK1.6Struts2默认需要Java5的运行环境,和支持Servlet API 2.4,JSP API 2.0的Web容器。

2、在项目中添加图片等资源文件(1)各个资源文件所在的目录当然,如果没有这些资源文件也是可以的,只是更符合实际的应用项目。

(2)最终的结果目录及文件3、在项目中添加index.jsp页面<%@ page isELIgnored="false" pageEncoding="GB18030"%><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><title>蓝梦集团CRM系统首页</title><meta http-equiv="pragma" content="no-cache" /><meta http-equiv="cache-control" content="no-cache" /><meta http-equiv="expires" content="0" /><meta http-equiv="keywords" content="蓝梦集团,CRM,账户" /><meta http-equiv="description" content="这是蓝梦集团CRM系统" /></head><body><jsp:include page="/commonPage/pageHead.jsp" ></jsp:include><jsp:include page="/commonPage/navMenuBar.jsp" ></jsp:include><br/><div id="someOnePageContent" ><strong>这是蓝梦集团CRM系统(客户关系系统)的首页内容</strong></div><br/><jsp:include page="/commonPage/authorInfo.jsp" ></jsp:include></body></html>在该页面中应用<jsp:include >动作标签包含其它的公共资源文件,从而形成一个完整结构的页面。

struts2实例

struts2实例

Struts2.06 +tiles介绍:本文档适用于新手,刚使用struts2,并且想知道怎么使用tiles的人使用,下面是我自己建立的工程,所有文件都很详尽,只要按照步奏来,就可以在自己的机器上,实现tiles的基本功能,和使用方法。

1.建立环境集成环境是eclipes,需要的jar包,服务器用tomcat,具体目录我将在,在下面的截图给出。

2.建立一个动态的web,然后开始如图建立文件,并在apache的网站下载jar 包,添加在lib下就可以了。

3.实现之后的界面如下所示:用户名和密码都是admin登陆之后的4.在src下,建立包net.viralpatel.struts2,然后在包下建立三个文件,依次如下所示:CustomerAction.javapackage net.viralpatel.struts2;import com.opensymphony.xwork2.ActionSupport;public class CustomerAction extends ActionSupport{private String name;private Integer age;private String email;private String telephone;public String addCustomer() {return SUCCESS;}public String getName() {return name;}public void setName(String name) { = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public String getEmail() {return email;}public void setEmail(String email) {this.email = email;}public String getTelephone() {return telephone;}public void setTelephone(String telephone) {this.telephone = telephone;}}LoginAction.javapackage net.viralpatel.struts2;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {private String username;private String password;public String execute() {if (ername.equals("admin")&& this.password.equals("admin")) {return"success";} else {addActionError(getText("error.login"));return"error";}}public String getUsername() {return username;}public void setUsername(String username) {ername = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}CustomerAction-validation.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE validators PUBLIC"-//OpenSymphony Group//XWork Validator 1.0.2//EN""/xwork/xwork-validator-1.0.2.dtd"><validators><field name="name"><field-validator type="requiredstring"><param name="trim">true</param><message key="errors.required"/></field-validator></field><field name="age"><field-validator type="required"><message key="errors.required"/></field-validator><field-validator type="int"><param name="min">1</param><param name="max">100</param><message key="errors.range"/></field-validator></field><field name="email"><field-validator type="requiredstring"><message key="errors.required"/></field-validator><field-validator type="email"><message key="errors.invalid"/></field-validator></field><field name="telephone"><field-validator type="requiredstring"><message key="errors.required"/></field-validator></field></validators>5,在src下建立文件ApplicationResources.properties接着建立俩个文件,依次为下面俩个文件:ApplicationResources.propertiesername= Usernamelabel.password=label.login= Loginerror.login= Invalid username/password.Please try again.name= Nameage= Ageemail= Emailtelephone= Telephonelabel.add.customer=Add Customererrors.invalid=${getText(fieldName)}is invalid.errors.required=${getText(fieldName)}is required.errors.number=${getText(fieldName)}must be a number.errors.range=${getText(fieldName)}is not in the range${min}and ${max}.struts.xml<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts><constant name="struts.enable.DynamicMethodInvocation"value="false"/><constant name="struts.devMode"value="faulse"/><constant name="struts.custom.i18n.resources"value="ApplicationResources"/><package name="default"extends="struts-default"namespace="/"> <result-types><result-type name="tiles"class="org.apache.struts2.views.tiles.TilesResult"/></result-types><action name="Login"class="net.viralpatel.struts2.LoginAction"><result name="success"type="tiles">/welcome.tiles</result><result name="error">Login.jsp</result></action><action name="customer"class="net.viralpatel.struts2.CustomerAction"><result name="success"type="tiles">/customer.success.tiles</result><result name="input"type="tiles">/customer.tiles</result></action><action name="customer-form"><result name="success"type="tiles">/customer.tiles</result></action></package></struts>6.WEB-INF文件下建立文件:WEB.XML的内容为:<?xml version="1.0"encoding="UTF-8"?><web-app id="WebApp_9"version="2.4"xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><display-name>Struts2 Application</display-name><listener><listener-class>org.apache.struts2.tiles.StrutsTilesListener </listener-class></listener><context-param><param-name>tilesDefinitions</param-name><param-value>/WEB-INF/tiles.xml</param-value> </context-param><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>Login.jsp</welcome-file></welcome-file-list></web-app>Tiles.xml的内容为:<?xml version="1.0"encoding="UTF-8"?><!DOCTYPE tiles-definitions PUBLIC"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN""/dtds/tiles-config_2_0.dtd"><tiles-definitions><definition name="baseLayout"template="/BaseLayout.jsp"><put-attribute name="title"value=""/><put-attribute name="header"value="/Header.jsp"/><put-attribute name="menu"value="/Menu.jsp"/><put-attribute name="body"value=""/><put-attribute name="footer"value="/Footer.jsp"/> </definition><definition name="/welcome.tiles"extends="baseLayout"><put-attribute name="title"value="Welcome"/><put-attribute name="body"value="/Welcome.jsp"/> </definition><definition name="/customer.tiles"extends="baseLayout"><put-attribute name="title"value="Customer Form"/><put-attribute name="body"value="/Customer.jsp"/> </definition><definition name="/customer.success.tiles"extends="baseLayout"> <put-attribute name="title"value="Customer Added"/><put-attribute name="body"value="/SuccessCustomer.jsp"/> </definition></tiles-definitions>7.建立所需的JSPBaseLayout.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib uri="/tags-tiles"prefix="tiles"%><!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type"content="text/html; charset=UTF-8"><title><tiles:insertAttribute name="title"ignore="true"/></title></head><body><table border="1"cellpadding="2"cellspacing="2"align="center"> <tr><td height="30"colspan="2"><tiles:insertAttributename="header"/></td></tr><tr><td height="250"><tiles:insertAttribute name="menu"/></td><td width="350"><tiles:insertAttribute name="body"/></td> </tr><tr><td height="30"colspan="2"><tiles:insertAttributename="footer"/></td></tr></table></body></html>Customer.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><html><head><title>Customer Form - Struts2 Demo | </title></head><body><s:form action="customer.action"method="post"validate="true"> <s:textfield name="name"key="name"size="20"/><s:textfield name="age"key="age"size="20"/><s:textfield name="email"key="email"size="20"/><s:textfield name="telephone"key="telephone"size="20"/><s:submit method="addCustomer"key="label.add.customer"align="center"/></s:form></body></html>Footer.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%>Copyright &copy; Header.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><h2>Struts2 Example - </h2>Login.jsp<%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><%@taglib uri="/jsp/jstl/core"prefix="c"%><html><head><title>Struts 2 </title></head><body><h2>Struts 2 - Login</h2><s:actionerror/><s:form action="Login.action"method="post"><s:textfield name="username"key="ername"size="20"/> <s:password name="password"key="label.password"size="20"/><s:submit method="execute"key="label.login"align="center"/> </s:form></body></html>Menu.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><s:a href="customer-form">Customer</s:a>SuccessCustomer.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><html><head><title>Customer Page - Struts2 Demo | </title></head><body><h2>Customer Added Successfully.</h2></body></html>Welcome.jsp<%@page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@page contentType="text/html; charset=UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><html><head><title>Welcome</title></head><body><h2>welcome, <s:property value="username"/>!</h2></body></html>。

struts2入门实例教程详解

struts2入门实例教程详解

Struts2教程教程1:在本教程中使用的工具和程序库的版本如下:在本系列教程中Web工程的上下文路径都是struts2,如果在Web根目录有一个index.jsp文件,则访问路径如下:http://localhost:8080/struts2/index.jsp由于MyEclipse6目前并不支持Struts2,所以我们需要到去下载Struts2安装包。

要想正常使用Struts2,至少需要如下五个包(可能会因为Struts2的版本不同,包名略有差异,但包名的前半部是一样的)。

struts2-core-2.0.11.1.jarxwork-2.0.4.jarcommons-logging-1.0.4.jarfreemarker-2.3.8.jarognl-2.6.11.jarStruts2虽然在大版本号上是第二个版本,但基本上在配置和使用上已经完全颠覆了Struts1.x的方式(当然,Struts2仍然是基于MVC模式的,也是动作驱动的,可能这是唯一没变的东西)。

Struts2实际上是在Webwork基础上构建起来的MVC框架。

我们从Struts2的源代码中可以看到,有很多都是直接使用的xwork(Webwork的核心技术)的包。

既然从技术上来说Struts2是全新的框架,那么就让我们来学习一下这个新的框架的使用方法。

如果大家使用过Struts1.x,应该对建立基于Struts1.x的Web程序的基本步骤非常清楚。

让我们先来回顾一下建立基于Struts1.x的Web程序的基本步骤。

1. 安装Struts。

由于Struts的入口点是ActionServlet,所以得在web.xml中配置一下这个Servlet。

2. 编写Action类(一般从org.apache.struts.action.Action类继承)。

3. 编写ActionForm类(一般从org.apache.struts.action.ActionForm类继承),这一步不是必须的,如果要接收客户端提交的数据,需要执行这一步。

struts2简单示例

struts2简单示例

struts2简单⽰例今天写⼀个struts2的例⼦,⽬的是为了让⼤家明⽩struts2的基本流程,其实框架没有⼤家想象的那么难,说⽩了struts2的本质就是⼀个⼤的Servlet,即原本需要提交到Servlet处理的部分现在通过配置⽂件将其交给普通的Class类进⾏处理。

⾸先新建⼀个javaWeb项⽬,然后把struts2所依赖的包导⼊到lib下(可以百度⼀下也可以直接到官⽹上下载),然后在web.xml中对struts2进⾏配置,添加的内容如下:1<filter>2<filter-name>struts2</filter-name>3<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>4</filter>5<filter-mapping>6<filter-name>struts2</filter-name>7<url-pattern>/*</url-pattern>8</filter-mapping>在index.jsp中写如下代码:1<form method="post" action="testAction">2名称:<input type="text" name="name"/>3<input type="submit" value="提交"/>4</form>接下来是写struts的配置⽂件struts.xml,内容如下:1<?xml version="1.0" encoding="UTF-8" ?>2<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"3 "/dtds/struts-2.1.dtd">4<struts>5<package name="testaction" namespace="/" extends="struts-default">6<action name="testAction" class="com.struts.action.TestAction">7<result name="success">/success.jsp</result>8<result name="error">/index.jsp</result>9</action>10</package>11</struts>其中⼀个action对应⼀个响应,在index.jsp中action="testAction"所以此处action的name="testAction"这是⼀⼀对应的关系。

struts2的简单实例应用

struts2的简单实例应用

struts2的简单实例应⽤功能:本实例实现的功能是从输⼊界⾯输⼊⽤户名和密码,若⽤户名和密码正确转到成功界⾯,否则转到失败界⾯。

1)在创建了⼀个JavaWeb⼯程后,导⼊struts2的核⼼⽀持包库。

2)web项⽬右击-MyEclipse-add Stru-选择2.1版本-选择/*-src中多了⼀个struts.xml(配置所有的⼯作流)。

3)src-右击新建包:com.sxl.actions-新建class:LoginAction-继承⼀个超类Supperclass-Browser...-输⼊actionsu,出来⼀个ActionSupport,选择即可。

4)创建Action⽂件,进⼊LoginAction.java,创建字段,注意要有setter和getter⽅法,右击source-选择重写⽅法execute();(返回是⼀个字符串)。

package com.sxl.actions;import org.omg.CORBA.PRIVATE_MEMBER;import com.opensymphony.xwork2.ActionSupport;public class LoginAction extends ActionSupport {private String name;private String pass;@Overridepublic String execute() throws Exception {System.out.println("获取:"+name+";"+"pass");if (name.equalsIgnoreCase("aaa")&&pass.equalsIgnoreCase("123")) {return "success";}return "failed";}public String getName() {return name;}public void setName(String name) { = name;}public String getPass() {return pass;}public void setPass(String pass) {this.pass = pass;}}5)在struts.xml中,拖拽控件进⾏相关配置。

Struts2入门经典实例

Struts2入门经典实例

写一个Steuts2的经典入门案例,怕忘记啊,有时候突然记不起知识概念了,所以还是记个笔记,网络上找了几个,发现部署出来要报错,最后还是自己写一个比较靠谱。

做了一个登陆程序作为入门例子。

登陆会去交互,并返回页面,比较适合以后扩展的项目,容易理解!例子:登陆的Struts2案例环境:IDE工具:Myeclipse , Tomcat6.0所需jar包:struts2-core-2.1.8.1.jarstruts2-json-plugin-2.1.8.1.jarxwork-core-2.1.6.jarcommons-fileupload-1.2.1.jarfreemarker-2.3.15.jarjunit4.4.jarognl-2.6.7.jar步骤:1. 创建一个web project项目2.导入Struts2所需jar包3.配置web.xml4.配置struts2.xml5.写action类(LoginUser.java)6.写jsp页面7.启动tomcat.运行项目项目最后截图:开始:1.创建一个项目还是截图,项目名称为:Struts2SpExa2.导入所需jar包导入所需jar包到项目的lib文件夹下(或者通过Build Path导入也可)3.在WEB-INF下面的web.xml中配置:配置拦截器和起始页面[html]view plain copy print?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<web-app version ="2.5" 03.xmlns ="/xml/ns/javaee" 04.xmlns:xsi ="/2001/XMLSchema-instance" 05.xsi:schemaLocation ="/xml/ns/javaee 06./xml/ns/javaee/web-app_2_5.xsd"> 07.<filter> 08.<filter-name>struts2</filter-name> 09.<filter-class> 10.org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter 11.</filter-class> 12.</filter> 13.14.<filter-mapping> 15.<filter-name>struts2</filter-name> 16.<url-pattern>/*</url-pattern> 17.</filter-mapping> 18.<welcome-file-list> 19.<welcome-file>/WEB-INF/jsp/login.jsp </welcome-file> 20.</welcome-file-list> 21.22. </web-app>4.配置struts.xml配置strust2要调用的action[html] view plain copy print ?01.<?xml version ="1.0" encoding ="UTF-8"?> 02.<!DOCTYPE struts PUBLIC 03."-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 04."/dtds/struts-2.0.dtd"> 05.<!--配置struts action > 06.<struts> 07.<package name ="todayMZ" extends ="struts-default" namespace ="/"> 08.<action name ="loginUser" class ="erAction"> 09.<result name ="success">/WEB-INF/jsp/success.jsp </result> 10.<result name ="fail">/WEB-INF/jsp/fail.jsp </result> 11.</action> 12.</package> 13. </struts>5.写action 类(LoginUser.java)这个类主要用于struts2跳转到这个action 后。

Struts2快速入门实例

Struts2快速入门实例

•一、预备工作–访问或直接访问,下载和解压struts开发包(目前版本为struts2.2.X)–安装和配置好带MyEclipse插件的eclipse或eclipse for JEE之类的IDE工具,并测试验证该IDE可以成功开发和部署Web项目。

二、搭建Struts2开发环境的步骤搭建Struts2环境时,我们一般需要做以下几个步骤的工作:1、新建web工程2、找到开发Struts2应用需要使用到的jar文件.3、编写Struts2的配置文件4、在web.xml中加入Struts2框架启动配置三、搭建Struts2开发环境--开发Struts2应用依赖的jar文件大家可以到/download.cgi#struts2014下载struts-2.x.x-all.zip,目前最新版为2.2.1.1。

下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。

不同的应用需要的JAR包是不同的。

下面给出了开发Struts 2程序最少需要的8个JAR。

struts2-core-2.x.x.jar :Struts 2框架的核心类库xwork-core-2.x.x.jar :XWork类库,Struts 2在其上构建ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),struts2框架通过其读写对象的属性freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker 编写commons-logging-1.x.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录。

commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后必须加入此文件以及另外两个包javassist-3.7.ga.jar 和 commons-io-1..3.2.jar 需要的全部基础包如下图五、搭建Struts2开发环境-- Struts2应用的配置文件Struts2默认的配置文件为struts.xml ,该文件需要存放在WEB-INF/classes下(也就是src 目录下),该文件的配置模版如下:<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN""/dtds/struts-2.0.dtd"><struts></struts>在struts2中,struts框架是通过Filter启动的。

通过代码实例跟我学Struts2框架从入门到精通——如何应用Struts2框架中..

通过代码实例跟我学Struts2框架从入门到精通——如何应用Struts2框架中..

1.1如何应用Struts 2框架中的CheckboxInterceptor和prepare默认拦截器的应用实例1.1.1Struts 2框架中的CheckboxInterceptor默认拦截器的应用示例1、主要的功能此拦截器是针对checkbox表单控件的,当提交的表单里有checkbox时,默认情况下,如果没选中,提交的值是null;如果选中,提交的值是"true"。

CheckboxInterceptor的作用是当没选中checkbox时,提交一个指定的值,而不是null。

2、实现的原理你需要在页面中为每个checkbox指定一个名字为"__checkbox_"+checkbox名的hidden 控件,例如,如果表单有一个名为vip的checkbox,就需要一个名为__checkbox_vip的hidden。

默认的,这个事情不需要你来做,因为Struts2在checkbox的simple模板中已经为你做了,即下面这条语句:<input type="hidden" name="__checkbox_${?html}"value="${parameters.fieldV alue?html}"/>因此CheckboxInterceptor实现原理如下:当提交表单后,CheckboxInterceptor会在请求参数里查找名字以"__checkbox_"开头的参数,如果找到,继续在请求参数里找对应的checkbox参数,如果没找到(表示没有选中该checkbox),就给checkbox参数一个指定的值,默认的,这个值为"false"。

3、可以在struts.xml文件中为某个Action引用该拦截器时设置改变这个值如下示例是将其值改成"no":<interceptor-ref name="checkbox"><param name="uncheckedValue">no</param></interceptor-ref>默认情况下,请求每个action都会调用CheckboxInterceptor,因为在Struts2定义的默认拦截器defaultStack中包含了它。

通过代码实例跟我学Struts2框架从入门到精通——熟悉Struts2框架系统内自带的Demo示例

通过代码实例跟我学Struts2框架从入门到精通——熟悉Struts2框架系统内自带的Demo示例

1.1通过代码实例跟我学Struts2框架从入门到精通——熟悉Struts2框架系统内自带的Demo示例
1.1.1实例struts2-blank-
2.0.11
struts2-blank-2.0.11.war这个项目,它可以告诉你如何搭建一个最最简单的Struts2的项目;它还会告诉你,Struts2至少需要依赖哪些jar包;同时,也给你做出了一些范例,web.xml怎么写,struts.xml又怎么写。

struts2-blank-2.0.11.war这个项目包含了核心精简过的Struts 2 空应用模版,在它的包的WEB-INF/lib 目录下包含了Struts2框架所必须的核心jar 文件。

1.1.2实例struts2-showcase-
2.0.11.2.war
struts2-showcase-2.0.11.war这个项目,可以看到Struts2的特性的大杂烩,这对于你看reference是相当有帮助的。

比如说,你在看文档时看到了“文件上传”的章节,那么你就可以参考项目中的upload子目录。

相当于你一边看文档,一边已经有一个现成的跑得通的例子在这里提供给你。

因为该示例项目列出了几乎所有Struts 2 所支持的功能的示例,包括actionchaining,ajax,chat,filedownload,fileupload,jsf,modelDriven 等等。

浏览该示例的页面:http://127.0.0.1:8080/struts2-showcase-2.0.11.2/index.jsp。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

北大青鸟中关村:Struts2的入门案例
Struts2 是一个非常优秀的MVC框架,是基于Model2 设计模型设计的.在企业的开发中Struts2框架越来越多的被使用,所以我们来配置一下Struts2的一个使用案例.
搭建struts2环境时,我们一般需要做以下几个步骤的工作:
第一步:创建javaweb工程
第二步:北大青鸟中关村:找到开发Struts2应用需要使用到的jar 文件.
到/download.cgi#struts2014下载struts-2.x.x-all.zip,我们使用版本为2.3.3。

下载完后解压文件,开发struts2应用需要依赖的jar文件在解压目录的lib文件夹下。

不同的应用需要的JAR包是不同的。

下面给出了开发Struts 2程序最少需要的JAR。

如图:
第三步:在WebRoot下新建demo1的文件夹在demo1下创建页面demo1.jsp代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>访问Action</h1>
<a href="${ pageContext.request.contextPath }/hello.action">访问Action</a>
</body>
</html>
在浏览器中的运行结果如下:
北大青鸟中关村:当点击这个超链接的时候,我们需要提交到后台的Action中.这时我们就需要编写一个Action
第四步:创建Action文件,用来控制页面和服务器之间的转发。

package cn.itcast.struts2.demo1;
public class HelloAction {
/**
* 在Action中的方法是固定的格式:
* * 格式:public 返回值是String 类型方法名execute 方法中没有任何参数.
* * 反射:
* * 解析struts.xml找<action>的class属性.(class属性中写的是Action类的全路径.)
* * Class clazz = Class.forName("类的全路径");
* * Method method = clazz.getMethod("execute");
* * String str = method.invoke(clazz.newInstanse());
* @return
*/
public String execute(){
System.out.println("HelloAction执行了....");
// 字符串想象成是一个逻辑视图名称.这个逻辑视图在struts 的配置中要用到.
return "success";
}
}
写好一个Action之后,这个类要运行必须让服务器知道,所以就需要将这个类进行配置.
第五步:编写Struts2的配置文件,这个文件要求:
(1)必须放置到src下(即项目的classpath的根路径下)
(2)名称必须叫做struts.xml,不能叫做其他的名称
配置如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"/dtds/struts-2.3.dtd">
<struts>
<package name="demo1" extends="struts-default" >
<!-- <a href="${ pageContext.request.contextPath }/hello.action">访问Action</a> -->
<!-- <action>的name对应的是页面上的请求的路径.hello.action -->
<action name="hello" >
<!-- name的值就是Action中返回的那个字符串(逻辑视图名称),标签中的值就是执行成功后要转向的页面 -->
<result
name="success">/demo1/demo2.jsp</result>
</action>
</package>
</struts>
Action执行完之后要进行页面的跳转,我们转发到一个demo2.jsp 中.
demo2.jsp的代码如下
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>成功结果页面</h1>
</body>
</html>
最后Struts2要想运行必须要配置web.xml.在web.xml中配置其核心过滤器.
第六步:在web.xml中加入Struts2 MVC框架启动配置,过滤器,没有它struts2就不能启动struts.xml,struts2的功能也就无法实现。

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.Strut sPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern> </filter-mapping>
</web-app>Struts2的入门案例。

相关文档
最新文档