struts框架教程,java web 如何加入struts2框架。
struts框架教程,java web 如何加入struts2框架。详细介绍
本文目录一览: 怎么搭建一个struts2框架
1、创建一个Javaweb项目;
2、导入jar包,这些jar包是为以后开发提供支持的,这个可以在struts的官网上下载;
3、导入约束,这个是为了让我们的代码更加规范,减少出错(即使写错了也会当即发现);
4、创建action类,在里面写上一个简单的方法;
4、配置核心配置文件:为这个action类配置访问路径的等信息;
5、配置过滤器,在web.xml文件中(这一步很简单,但是确实struts2框架的灵魂);
大概的就这些步骤,详细的话还要再细查,我推荐你看一些博客文章,像这个struts2框架搭建图文详细教程
希望能帮到你~
作为一个程序员,希望你能坚持下去,加油~~~!!!
struts2的工作流程?
在Struts2框架中的处理大概分为以下几个步骤:
1、客户端初始化一个指向Servlet容器(例如Tomcat)的请求
2、这个请求经过一系列的过滤器(Filter)(这些过滤器中有一个叫做ActionContextCleanUp的可选过滤器,这个过滤器对于Struts2和其他框架的集成很有帮助,例如:SiteMesh Plugin)
3、接着FilterDispatcher被调用,FilterDispatcher询问ActionMapper来决定这个请是否需要调用某个Action
4、如果ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给ActionProxy
5、ActionProxy通过Configuration Manager询问框架的配置文件,找到需要调用的Action类
6、ActionProxy创建一个ActionInvocation的实例。
7、ActionInvocation实例使用命名模式来调用,在调用Action的过程前后,涉及到相关拦截器(Intercepter)的调用。
8、一旦Action执行完毕,ActionInvocation负责根据struts.xml中的配置找到对应的返回结果。返回结果通常是(但不总是,也可 能是另外的一个Action链)一个需要被表示的JSP或者FreeMarker的模版。
在表示的过程中可以使用Struts2 框架中继承的标签。在这个过程中需要涉及ActionMapper 。
扩展资料:
应用流程注解
当Web容器收到请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器。
经过Other filters(SiteMesh ,etc),需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。
FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象。
ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N)一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面。
拦截器(Interceptor N)会再被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和核心控制器(FilterDispatcher)。
参考资料:百度百科-Struts 2
用eclipse怎样基于struts1搭建开发框架?
1 新建一个项目
1) 选择Java >> Tomcat Project,下一步
2)填写项目名称,如果不采用项目所在目录的缺省值,请修改,点击完成。
2 创建Struts框架
1) 右键选择项目 >> 新建 >> 其他 >> MyEclipse >> Web-Struts >> Struts 1.2 >> Struts 1.2 Form,Action & JSP。
2) 配置Struts ActionForm
接下来填写Optional Details,输入Form表单项,本例为用户名(username)和密码(userpassword)。点击Add
输后完毕,Optional Details的Form Properties中会显示。
Methods选项卡的设置我们采用默认设置,不去修改。
点击JSP选项卡,将“Create JSP form”选项的勾选中,采用默认设置“/form/logon.jsp”。
3) 配置Struts Action
以上步骤完成了对Form的配置,下面配置Action。
Parameter和Methods选项也采用默认。
点击Forwards选项卡,点击Add,配置成功页面信息。选取根目录的success.jsp作为成功页面,Name为logon_sc。
输后完毕,Optional Details的Forwards中会显示。
点击完成。
Struts1.x系列教程(11):Validator验证框架高级应用
在《Struts x系列教程( ) Validator验证框架入门》一文中给出的例子中的name age和email都是简单的属性 如果是嵌套的属性(也就是一个属性的数据类型是另外一个带有属性的类) 可以使用圆点( )符号来访问 如我们可以通过设置
元素的property属性值为 employee salary 来验证employee属性中的salary属性
如果要验证的索引属性 我们可以使用
元素的indexedListProperty属性来指定这个索引属性 如下面代码如示
在使用上述配置代码后 Validator框架将会按著depends属性中的约束来验证items属性的每一个值 我们还可以将property和indexedListProperty配合使用 如下面代码所示
Validator框架将根据上述的配置代码来验证items属性中的每一项的employee age属性
二 使用常量和变量
常量
在《Struts x系列教程( ) Validator验证框架入门》一文中的name属性使用了mask进行验证 这个mask实际上代表了一个正则表达式 但如果在validator xml文件中有很多个地方需要用到这个正则表达式 那就它就会在很多地方重复 为此 我们可以使用常量来避免这种事情发生
常量分为全局常量和局部常量
( )全局常量
全局常量可以被用在validator xml中定义的所有form中 我们可以使用
元素来配置全局常量 为了配置全局常量 将如下的内容放到第一个
元素的前面
mask
^[a zA Z ]*$
( )局部常量
局部常量需要放到
元素的开始位置(根据DTD的定义 局部常量只能放到这里 而全局常量可以放在第一个
元素的前面 也可以放到
的后面) 如下面的代码所示
mask
^[a zA Z ]*$
我们可以编写如下的代码来使用mask常量
mask ${mask}
变量
Validator框架通过
元素来定义变量 变量将作为
的子元素被使用 主要向depends属性值(如mask)以及
的错误信息传递数据 如下面的代码通过变量required将 姓名 传递给了错误信息的第一个参数{ }
required 姓名
三 客户端验证
使用Validator框架的好处之一就是可以很容易地将服务端验证变为客户端验证(JavaScript验证) 为了完成这一转换 我们只需要修改两个地方 现在就拿《Struts x系列教程( ) Validator验证框架入门》中的firstValidator jsp为例来说明要修改什么
首先 在firstValidator jsp中的任何地方(当然 任何地方指的是客户端代码区 并不包括<%……%>和<%——…… ——%>所包含的内容)添加如下的< javascript>标签
<:javascript formName= firstValidatorForm />
然后在< form>标签中加入如下的属性
onsubmit= return validateFirstValidatorForm(this);
lishixinzhi/Article/program/Java/ky/201311/28301
简述开发一个实现STRUTS2框架的程序一般经过什么具体步骤
jsp或者前台页面请求action,之前可以加过滤器,action请求service,service请求dao,dao操作数据库返回的值传给service,service再传给action,页面根据需要是遍历结果集,还是一个跳转,或者其他。
(1)导入struts2的jar
(2)配置web.xml
(3)写一个action 继承actionSupport
(4)在jsp上写一个form访问action。
(5)配置struts.xml 把action配置上
详解Struts中Validator验证框架的使用
Validator框架已成为Jakarta的公共项目的一部分 可以从下载单独的Validator框架 在Struts中已经带了这个框架
Validator主要依赖两个jar包
Jakarta oro jar -提供一组处理文本的类 具有文本替换 过滤 和分割功能
Commons validator jar 提供了一个简单 可扩展的验证框架 包含了通用的验证方法和验证规则
在用Struts中用这个框架 需加入这两个包 用起来感觉还不错
下面介绍一下
Validator采用基于两个xml文件的方式来配置验证规则 分别为validation xml validator rules xml 在struts应用中 需放到web inf目录下
.validator rules xml
这个文件包含了一组验证规则 对所有struts应用都适用 一般情况不用修改这个文件 除非要修改或扩展默认规则 如果要给应放到另一个xml文件中 而不是直接添加到validator rules xml文件中 这样当Validator升级时 不用修改validator rules xml文件
.validator xml文件
这个文件是针对于具体struts应用的 他可以为应用中的ActionForm配置验证规则 而不用编码实现验证
例如一个验证登陆form的例子 要求用户名必须填写 秘密要求必填 最大 最小长度及其内容的要求
代码
pwd
^\w+$
mask ^\w+$
minlength
maxlength
validator xml和validator rules xml文件的语法不在这里说明
Validator插件
为了在struts中用validator 可以用插件方式加载Validator框架 需在struts配置文件中配置ValidatorPlugIn插件 同时写明两个xml文件的路径
应用启动时 Strust会加载这个插件 并调用他的init()方法 init()方法根据pathnames加载
相应的validator xml validator xml文件 把验证信息读入到内存中
代码
.Validator和ActionForm
Validator框架不能直接 apache struts action ActionForm 应采用ActionForm的两个子类
ValidatorActionForm和ValidatorForm
DynaValidatorActionFrom继续自DynaValidatorForm
支持动态在ActionFrom中使用Validator框架
ValidatorFormActionForm继承ValidatorForm
支持在标准ActionForm中使用Validator框架
DynaValidtaorForom和ValidatorForm类都实现了validator()方法 如果验证失败 就会返回包含错误消息的ActionMessage对象 并把该对象添加到ActionErrors集合对象中 由validator方法最后返回ActionErrors对象
ValidatorForm有一个子类ValidatorActionForm
ValidatorForm
Strust配置文件的元素的name属 >validator xml文件
元素的name属性 ValidatorActionForm
Strust配置文件的元素的path属 >validator xml文件元素的name属性
Validator框架提供这两个类目的在于可以更加精确的控制执行验证的条件
例如
loginForm表单对应两个验证规则A B 对应login cancel两个动作
如果对于这两个动作都要执行规则A B 则可以扩展一个ValidatorFom类loginForm然后配置
代码
验证规则A 验证规则B
…
如果对于用户的login动作 执行规则A 对于cancel动作执行B规则 则可以扩展一个ValidatorActionFom类
loginForm
然后配置
代码
验证规则A
验证规则B
而DynaValidatorForm和DynaValidatorActionForm 区别和ValidatorFrom和ValidatorActionForm的区别一样
.在validator框架中使用JavaScript
默认情况下 validator框架在服务器端执行表单验证 也可以在客户端验证
如果在客户端验证 需要使用struts的 <:javascript> 标签 他能在jsp页面中生成用于客户端验证
的JavaScript的脚本
) 在validator-rules xml文件的 元素中配置 元素默认struts框架的validator-rules xml文件已经包含了javascript子元素 也可以将这些javascript集中放到一个validator js的文件中 也页面中引入代码
< script language= Javascript src= js/validator js >< /script>
) 在Jsp页面中包含< :javascript>
< :javascript formName= loginForm > 这个标签的form的name属性制定需要验证的表单名字
他能够访问为表单配置的验证规则的javascript元素 把包含的脚本写到jsp页面中 生成validateLoginForm的函数 负责执行验证逻辑
) 对需要验证的表单定义onsubmit事件
)代码
< :form action= manageContract do onsubmit= return validateContractForm(this); >
) 用户在表单上提交后 就会调用 <:javascript>
标签生成的js脚本validateLoginForm函数 执行验证 如果验证失败 就会弹出对话框提示
不会提交的服务器端
小结
使用步骤
) 创建扩展ValidatorForm或ValidatorActionForm类的ActionForm 如果使用动态ActionForm
则不用扩展DynaValidatorForm或DynaValidatorActionForm类的子类 可以直接进行第二步
) 在struts文件中配置form和action元素
) 把validator框架使用的文本信息添加到应用的Resource Bundle中
) 代码
< message resources parameter= web ApplicationResources />
) 在validatorxml文件中为表单配置验证规则
) 在struts配置文件中配置validatorPlugIn插件
代码
lishixinzhi/Article/program/Java/ky/201311/27918
Struts框架如何使用
如果以前学习过其它的MVC框架,如struts1,spring mvc,webwork, 那就好办,直接在apache的官方网站下载apache的struts2的包,里面包括API,examples,lib都有,把例子代码放进tomcat里运行就可以了,接着一一看效果,根据代码学习,掌握得很快。apache官方网站:www.apache.org 打开后发现显示很乱,apache就这样,看似乱七八糟的网站,东西都是精华。在主页找到struts的链接,进去后接着就可以看到struts1 struts2,选择struts2就可以找到相应的下载了。建议:如果英文比较好,一边看一边练习,还是比较好学的。
如果以前没有MVC方法的学习或使用经验(个人感觉你应该没怎么学习或使用过MVC),那就需要一步步来学习了,首先,在网站上找一个struts2的入门教程,文档类的也好,视频类的也好,搭建起第一个实例,慢慢领会里面的设计思想与编程思路,吃透最简单的Helloword实例之后 ,接着再一一去研究 请求参数的接收与发送,参数的封闭,校验,result,struts2标签库这些最为核心的东西(其实这些也正是最常用的东西),经过这样的学习,应该领会了一些Struts2的流程,接着再去阅读相关文档去了解Strust2的拦截器设计思想(这叫先使用再体会的学习方法),接着可以做一些针对于自定义拦截器的实现来深化对Struts2的认识。此时,你已经达到企业中使用的级别了,接下来就可以玩一些SSh整合(其实这个内容跟Struts2没多大关系,但有一些细节,需要掌握一下)。
OK,最后说说追求Struts2大神级别的童鞋,当学会了基本使用以其原理,接着可以阅读Struts2的源代码,了解Struts2的一些内部机制有利于更灵活的配置Struts2,如配置文件的位置,相关参数的配置(因为Struts2很多东西是默认配置的,开发人员并不知情,也就是业内所说的缺省配置),了解了这一些,一个大牛Struts2程序员就诞生了,你可以相当自入的开发并且能够对大家常谈的Strusts2的性能问题也做一些适当的优化(当然只是适当,有些东西是无法改变的,得到的开发的快捷,必须失去一些性能上的优势)
java web 如何加入struts2框架。
添加所需的jar包
web.xml中
<web-app 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">
Struts2Filter
org.apache.struts2.dispatcher.FilterDispatcher
Struts2Filter
/*
index.jsp
还要添加一个struts.xml
"-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
"http://struts.apache.org/dtds/struts-2.1.7.dtd">
result>
将struts2所用到的jar包引到你的工程里就可以了!
maven + appfuse 构建struts2项目吧。简单极了。
对一个javaweb中加入Struts2框架,具体包含以下两个步骤:
将Struts2的框架jar包,将jar拷贝到WEB_ROOT中WEB_INFO的lib包下面
主要包含以下几个基础jar包:
struts2-core-2.x.x.jar :Struts 2框架的核心类库;
xwork-2.x.x.jar :XWork类库,Struts 2在其上构建;
ognl-2.6.x.jar :对象图导航语言(Object Graph Navigation Language),Struts 2框架使用的一种表达式语言;
freemarker-2.3.x.jar :Struts 2的UI标签的模板使用FreeMarker编写;
commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志包来支持Log4J和JDK 1.4+的日志记录;
Commons-fileupload。
2.对配置文件进行配置,主要包括web.xml和struts.xml;
首先是web.xml的配置,内容大致如下:
struts2
org.apache.struts2.dispatcher.FilterDispatcher
struts2
/*
接着对stucts.xml的配置,将该文件放在WEB-INF/classes下,内容大致如下:
/WEB-INF/page/hello.jsp
只要按照上面两步执行,一个简单Struts2框架的配置就完成了。
基于Struts框架Web应用的工作流程是怎样的?
【答案】:在web应用启动时就会加载初始化ActionServlet,ActionServlet从struts-config.xml文件中读取配置信息,把它们存放到各种配置对象中, 当ActionServlet接收到一个客户请求时,将执行如下流程.
1)检索和用户请求匹配的ActionMapping实例,如果不存在,就返回请求路径无效信息;
2)如果ActionForm实例不存在,就创建一个ActionForm对象,把客户提交的表单数据保存到ActionForm对象中;
3)根据配置信息决定是否需要表单验证.如果需要验证,就调用ActionForm的validate()方法;
4)如果ActionForm的validate()方法返回null或返回一个不包含ActionMessage的ActionErrors对象, 就表示表单验证成功;
5)ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给哪个Action,如果相应的Action实例不存在,就先创建这个实例,然后调用Action的execute()方法;
6)Action的execute()方法返回一个ActionForward对象,ActionServlet在把客户请求转发给ActionForward对象指向的JSP组件;
7)ActionForward对象指向JSP组件生成动态网页,返回给客户;