-
1.3:Struts2的发展历史
1
查看全部 -
多看两次
查看全部 -
4-8
查看全部 -
查看全部
-
方法一
<action name="helloworld" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
</action>
方法二
<constant name="struts.enable.DynamicMethodInvocation" value="true">
<action name="helloworld" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
<result name="add">/add.jsp</result>
<result name="update">/update.jsp</result>
</action>
http://localhost:8080/hello/helloworld!update.action
方法三
<constant name="struts.enable.DynamicMethodInvocation" value="false">
<package name="default" namespace="/" extends="struts-default">
<action name="helloworld_*" method="{1}" class="com.imooc.action.HelloWorldAction">
<result>/result.jsp</result>
<result name="add">/{1}.jsp</result>
<result name="update">/{1}.jsp</result>
</action>
http://localhost:8080/hello/helloworld_update.action
查看全部 -
在result里面最重要的属性是type类型,type的默认值为dispatcher(转发),这个类型支持JSP视图技术。
Struts2支持多种视图技术,例如JSP、Valocity(模板引擎)、FreeMaker(模板引擎)等。
常用三个:chain,redirect,plaintext。
1)、chain:将action和另外一个action链接起来,必须是一个action不能是jsp页面。 2)、redirect:重定向(会丢失请求参数)。
3)、plaintext:返回网页源代码。
4)、stream:返回inputstream用于文件下载。
5)、默认"dispatcher" jsp传值 请求转发
查看全部 -
INPUT处理结果类型。有2种方式能触发result标签的name为"input"的action。
* 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接收参数 Action中直接设置属性 (对应Action文件中的get和set得到表单提交的数据)
.使用DomainModel接收参数,单独设置模型类,表单中要指出哪个对象,Action中要有对对象的getter,setter,方法,但不用实例化对象
使用ModelDriven接收参数:设置模型类,Action类实现ModelDriven <T>接口,重写getModle()方法,Action中不需要getter,setter,表单中不需要指出哪个对象,但是需要在对应的Action类中实例化对象
(使用泛型的获取参数)
查看全部 -
三种方式 可以定制 url的后缀:
在struts.xml的包外面配置常量<constant name="struts.action.extension" value="指定扩展名"></constant>
在struts.propertios文件中配置struts.action.extension=指定的扩展名1,指定扩展名2,。。。(以 逗号隔开 可以配置多个后缀名 )
在web.xml中配置strutsPreparedAndExecuteFilter时初始参数配置<init-param><param-name>struts.action.extension</param-name><param-value>指定扩展名</param-value></init-param>
查看全部 -
推荐使用通配符方式来实现动态方法调用。
1、一个通配符
<packgage name="default" namespace="/" extend="struts-defaullt">
<actiion name = "helloworld_*" method="{1}" class="..">
<result>/defult.jsp</result>
<result name="add">/{1}.jsp</result>
<result name="update">/{1}.jsp</result>
</action>
</packgage>
2、两个通配符
<package name="default" extends="struts-default" namespace="/" strict-method-invocation="false">
<action name="*_*" class="com.action.{1}Action" method="{2}">
<result >/result.jsp</result>
<result name="{2}">/{2}.jsp</result>
<result name="{2}">/{2}.jsp</result>
</action>
</package>
Struts2 2.5中默认是不开启通配符,需要将strict-method-invocation设置为false
即:
<package name="default" namespace="/" extends="struts-default" strict-method-invocation="false">
</package>
惊叹号方式调用方法时:
<packgage name="default" namespace="/" extend="struts-defaullt">
<actiion name = "helloworld" class="..">
<result>/defult.jsp</result>
<result name="add">/add.jsp</result>
<result name="update">/update.jsp</result>
</action>
</packgage>
查看全部 -
Struts.xml 的主要内容
查看全部 -
包下的所有action都可以共用全局结果
查看全部 -
结果分为2种:局部结果,全局结果
查看全部 -
stream用于文件的下载
查看全部
举报