一,redirect属性
在使用Action进行转向的时候,会发现浏览器的地址是不变的,只是服务器内部的一个跳转。比如,我在forward设置转到index.jsp页面,发现浏览器地址还是**.index.action;如果想转向的时候,为重定向,可以使用:
二,ActionForward的全局与局部
当有多个Action里面配置了重复的转向的时候,比如,我每次跳转前判断完用户是否登录,都要在相应的Action里面配置一个forward作为用户未登录时候的跳转,这样就出现了forward重复配置的情况。此时,可以使用全局的Forward配置。
如果存在全局的配置与局部的配置重名的情况,这时候,使用局部的配置进行跳转。
三,受保护的页面放到WEB-INF下面
为了防止客户端不通过controller就直接访问我们的JSP页面,最简单的方法是,将我们不想被直接访问的页面放到WEB-INF下面,让这些页面只能通过Action进行访问。
四,Struts的配置文件不能在运行时期修改
Action的execute方法返回一个ActionForward对象,但是如果我在代码里面写一些涉及配置的代码,运行时候就会报错。猜想大概Struts的配置文件是一次性读到内存,为了防止运行时出错,所以禁止运行时候修改配置。
五,手动完成转向
存在一些这样的情况,比如,我要向客户端返回一张图片,一段JSON,这时候,return 一个ActionForward对象就不合适了。这时候,我们就可以将return设置为null,通过原始的转向方法进行我们的操作。例如:
六,动态ActionForward
既然execute方法返回的是一个ActionForward对象,那么我们可以自己在方法内部定义一个ActionForward.
好琐碎,mark下!
时间: 2024-10-26 18:01:03