-
@Struts2---环境准备
1.运行struts2的环境要求
(1)Servlet API 2.4
(2)JSP API 2.0
(3)Java JDK 1.5 或者以上
2.使用步奏:
(1)将struts 添加到项目中:
Apache官网下载struts库文件,解压;
将lib目录下struts.jar文件复制到项目WEB-INF/lib之下;
其他文件则复制到/WEB-INF文件夹下,然后在该文件夹下创建struts-config.xml配置文件.
(2)给项目添加struts2支持
(3)创建Action进行测试
3.Apache Struts官方网站
http://struts.apache.org/
http://people.apache.org/builds/struts/查看全部 -
@Struts2---发展史
Struts2不是继承struts1的血统,而是在Webwork上的升级,同时吸收了Strust1和WebWork两者的优势。
查看全部 -
@Struts2---MVC模式
JSP+JavaBean=Model-1:适用于小型网站的开发
JSP+Servlet+JavaBean=Model-2:最典型的MVC模式
MVC是模型(Model)、视图(View)和控制器(Controller)的缩写;MVC是一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。在Struts中,Controller就是action。查看全部 -
@Struts2---定义与用途
1.Struts是什么?
Struts是流行和成熟的基于MVC设计模式的Web应用程序框架。
2.使用Struts的目的
为了帮助我们减少在运用MVC设计模型来开发Web应用时间。查看全部 -
方面: 1.访问Servlet API 2.Action搜索顺序 3.动态方法调用 4.制定多个配置文件 5.默认action 6.Struts2后缀 7.接受参数 8.处理结果类型 1.访问Servlet API HttpServletRequest HttpServletResponse(Struts2不存在) struts2提供了三种方式: 1.ActionContext 2.实现***Aware接口 3.ServletActionContext 2.Action搜索顺序 http://localhost:8080/struts2/path1/path2/path3/student.action 1.判断package是否存在,如:path1/path2/path3/ 2.(package存在)判断action是否存在,如果不存在则去默认namespace的package里面寻找action 3.如果没有,则报错 2.(package不存在)检查上一级路径的package是否存在(知道默认namespace),重复第一步 3.如果没有,则报错 3.动态方法调用 为了解决一个Action对应多个请求的处理,以免Action太多 1.制定method属性(少用)method="" 2.感叹号方式(不推荐)xxx!add.action 3.通配符方式(推荐使用)*_*和{1}{2} 4.指定多个配置文件 1.<include file="模块.xml"></include> 5.默认action 当用户输入的地址找不到对应的action,那么默认action就起作用了 <package> <default-action-ref name="action名称" /> <action name="" class=""> </action> </package>
查看全部 -
全局结果: 将<result/>作为<global-result/>元素的子元素配置。 局部结果: 将<result/>作为<action/>元素的子元素配置。 <result>/success.jsp</result>与<result>success.jsp</result>的区别 带斜杠是:绝对路径,开始是整个项目的上下文路径 去掉斜杠:相当于执行该action namespace指定的路径 result具有子标签param标签,result具有两个属性,一个是location,一个是prase属性,location定义了该视图对应的实际视图资源,parse即是指定是否可以在result中使用ognl表达式,默认值为true <result> <param name="location"> </param> <param name="prase"></param> </result> 在result中使用ognl表达式: ${#request.path}这中形式,即action中request对象的一个属性值 ${username}这种形式,即action中的一个成员变量的值,action中该成员变量应该有getter和setter方法
查看全部 -
结果类型input的效果 * 1.当参数类型转换错误时,如age输入框中的类型是字母等情况,方法自动返回input * 2.当action中存在addFiledError时: * 1)addFileError放在一般执行方法,addFieldError("", "");语句后面有返回input的语句 * 2)addFileError放在validate()中 *3.FileError的表现形式: * 在jsp页面中使用<s:fielderror/>标签,该标签name属性为addFieldError方法中的参数fieldName,在jsp页面中使用struts标签, * 需要导入标签库 语句:<%@ taglib prefix="s" uri="/struts-tags" %>
查看全部 -
Action中5中内置属性 (1) SUCCESS :Action正确的执行完成,返回相应的视图,success是name属性的默认值。 (2) NONE :表示Action正确的执行完成,但并不返回任何事视图。 (3) ERROR : 表示Action执行失效,返回错误处理视图。 (4) LOGIN : Action因为用户没有登录的原因没有正确执行,将返回该登录视图,要求用户进行登录验证 (5) INPUT : Action的执行,需要从前端界面获取参数,INPUT就是代表这个参数输入界面,一般在应用中,会对这些 参数进行验证,如果验证没有通过,将自动返回该视图。
查看全部 -
接收参数 1,使用Action的属性接受参数,在Action中定义需要接受的属性,并写它的set/get方法。 2,使用DomainModel接受参数,创建实体类定义需要接受的属性,并set/get方法,在Action中创建实体类名属性。并在界面进行指定。 3,使用ModelDriver接受参数,在Action中实现ModelDriver<实体类名>接口,并实现方法返回当前需要转换的对象,删除set/get方法,并对 对象 进行实例化,并取消指定。 4,request 5,获取List集合中的参数。获取多个参数。 第一种接收参数的方法:直接在action类中创建相应的属性和getter和setter,和前端的name名字相同。eg:前端的username,在action类中就要建立一个private String username; Struts会自动映射为这个属性赋值 第二种接受参数的方法:使用DomainModel,将username 和password两个属性封装为一个类User(必须是标准的JavaBean),在action中声明这个属性:private User user; 同时为user设置getter和setter;在前端中的name需要设置为user.name和user.password,才能映射成功 第三种接收参数的方法:使用ModelDriven<T>接口,这个action必须实现这个接口的public T getModel()方法。此时声明的属性必须实例化,eg: private User user = new User(); 同时不需要getter和setter。前端的name也只需要写username和password就可以,不需要再加域了。这种方法时最推荐的方法,因为可以减少前后端的耦合
查看全部 -
struts.xml中包含的内容:
查看全部 -
Struts2的工作原理流程图
查看全部 -
第2个网址:http://people.apache.org/builds/struts/失效了。
查看全部 -
struts2后缀: 三种方式: 1.struts.properties中:struts.action.extension=action,do,struts2 2.xml中增加常量constant: <constant name="struts.action.extension" value="action,do,struts2"></constant> 3.在过滤器中配置intt-param参数: <init-param> <param-name>struts.action.extension</param-name> <param-value>do,action,strtus2</param-value> </init-param>
查看全部 -
【找不到默认action的原因和解决方法】 <default-action-ref name="index"></default-action-ref><br> <br> <action name="index"><br> <result>/error.jsp</result><br> </action> <br> <br> <action name="log_*" method="{1}" class="com.wayne.action.LoginAction"><br> <result name="login">/login.jsp</result><br> <result name="logout">/logout.jsp</result><br> </action><br> <br> 通配符会覆盖掉默认action,所以不能有【*_*】这样子的action,要改成【log_*_*】这类型的命名,否则,【*_*】里面的第一个*就包括了所有的字符,直接进入了这个action进行处理,无法进入默认的action了。
查看全部 -
1、如果有很多个Action的配置文件,则需要在struts.xml中使用<include file="fileName.xml"/>来包含其他的配置文件 2、struts文件中添加<constant name="struts.i18n.encoding" value="UTF-8"></constant>以防乱码问题的出现 配置文件和struts.xml的格式如下: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> ... </struts>
查看全部
举报