result配置类似Struts1中的forward,但是Strut2中提供了多种结果类型,常用的类型有:dispatcher(默认值)、redirect、redirectAction、plainText
1、默认的内部转发(属于同一个请求)
<action name="helloworld" class="cn.winney.HelloWorld">
<result name="success">/WEB-INF/page/hello.jsp</result>
2、重定向转发,已经不在同一个请求内了
<result type="redirect">/view.jsp?id=${id}</result>
在result中还可以使用${属性名}表达式访问action中的属性,表达式里的属性名对应action中的属性。
3、redirectActtion
如果重定向的action在同一个包下:
<result type="redirectAction">helloworld</action>
```
如果重定向的action在别的命名空间下:
则需要设置一些属性
```
<result type="redirectAction">
<param name="actionName">helloworld</param>
<param name="namespace">/test</param>
</result>
```
plaintext显示原始文件内容,例如:当我们需要原样显示jsp文件源代码的时候,我们可以使用此类型。
```
<result name="source" type="plainText">
<param name="location">/hello.jsp</param>
<param name="charSet">UTF-8</param><--!指定读取文件的编码-->
</result>
```
####二、编码问题
在后端传送中文字符,可以用一下代码进行编码:
```
this.username = URLEncoder.encode("猪八戒","utf-8");
```
在前端获取时直接解码或者按照以下代码:
```
<%String username = new String(request.getParameter("username").getBytes("utf-8"),"utf-8");
```
网友评论