Struts学习笔记二--action返回类型及表单值传递

action返回值配置和异常配置

每个Action的方法都应该有返回值,并且类型为String。如果返回"success"而struts.xml中没有配置,在运行时找不到汇报404错误

<action name="user">

  <!--exception-mapping用于为异常指定视图,exception是对应抛出的异常类型,result是视图-->

  <exception-mapping result="error" exception="java.lang.Exception"/>

  <result name="error">/jsp/error.jsp</result>

  <result type="dispatcher" name="success">/jsp/success.jsp</result>

</action>

result的name匹配action的返回值,type是类型,如UserAction的login方法返回值为“success”,就会匹配name为“success”的result,去到/jsp/success.jsp。

 

struts支持的返回类型很多,在struts核心包xml中可以找到,struts提供了很好的扩展性,插件可以自定义返回类型。常用的返回类型↓

dispatcher:默认返回类型,转发到一个servlet或jsp

redirect:重定向到一个URL

chain:传递到下一部构成一个动作链

redirectAction :重定向到另一个动作
stream :把一个InputStream流发送给浏览器
velocity :用于与Velocity技术集成
xslt: 用于XML/XSLT技术的集成
plainText :发送普通文本,通常用来显示Jsp源代码

 

也可以在package中定义独立于其他action的,全局的返回类型和异常处理

<package name="mypackage">

<global-results>

  <result name="main">/jsp/main.jsp</result> //定义全局返回类型

</global-results>

<global-exception-mappings>

  <exception-mapping result="error" exception="java.lang.Exception"/>

  <!--全局异常必须指向一个全局的result-->  

</global-exception-mapping>

</package>

  • 全局返回类型和action中具体定义的返回值name相同,将使用action定义的操作,与外部css样式和行内css样式同名,行内样式会起作用类似。
  • 指定了异常后,在action中直接抛出异常就行,当然也可以选择在action直接处理掉

 

action的方法配置:

动态方法调用,老师建议最好不要使用这种方式,有安全性缺陷,而且在javascript校验是struts生成的时候可能执行不了(主要是后者的问题)

通配符形式:useradd.action Action的name="user*",method="{1}"。

*表示匹配0-n个任意字符,{1}表示前一个*匹配的内容。在这里请求匹配该action,{1}的内容是add,于是就成功调用了user Action中的add方法。

为action的每个method在xml中配置一个Action:这种方式没问题,但是比较繁琐。

Struts学习笔记二--action返回类型及表单值传递

上一篇:截图


下一篇:[itint5]三数和为0