追问:WEB-INF下的页面如何互相跳转?(如何实现转向?)

orderList.jsp 和 orderDetail.jsp 均放在 WEB-INF 目录下,打开 orderList.jsp 后,想通过后台转向,来打开 orderDetail.jsp ,但结果是跳转不了,以下是我的代码,请问是哪里的问题?

以下为 orderList.jsp 的 js 代码:

1.png

以下为 OrderListAjaxController 代码:

image.png

以下为 orderDetail action 路由:

image.png

  image.png

 

评论区

Jefitar

2019-03-20 10:25

JFinal 版本 3.2

JFinal

2019-03-20 13:17

不要打开任何 jsp 文件,而是让请求只触达 action

然后用好 forwardAction、 redirect、 render 即可

JFinal

2019-03-20 13:18

不要打开任何 jsp 文件, 是指在浏览器地址栏里面的 url 不要直接指向 jsp 文件, 而是指向一个 action,因为你的 jsp 文件是放在 WEB-INF 下面的, java web 容器不允许这样做,不是 jfinal 不允许

Jefitar

2019-03-20 14:50

@JFinal 我的业务场景是微信公众号,用户进入公众号,点击“查看订单”菜单,后台先指向 /Oauth action,在 index()里面登录账号,登录成功后,redirect("/orderList"),打开订单列表页面。用户点击订单列表中的某个订单,js post 另外一个 action,在这个action 里面(通过 forwardAction,如我贴的图所示)跳转到 订单详情页面,我这里使用的 forwardAction 正确吗? 通过点击公众号的菜单,然后 redirect 到各个页面都是可以的,但是从页面跳转到页面就不行了。

Jefitar

2019-03-20 15:01

@JFinal 网上看到一段话:“在web项目中,为了安全,可能需要把jsp文件放在WEB-INF目录下,这样如果我们的页面中出现超链接a标签或者js的location.href去直接转向到WEB-INF下的某一个jsp页面,那么就会引用不到,因为这样的请求方式是客户端的请求,而WEB-INF页面只对服务端开放,对客户端是不可见的。这时候我们可以使用action,来进行转向,我们先去请求一个action,然后由这个action分发到这个WEB-INF下的页面就可以了。我们可以自己定义一个类似struts1的DispatcherAction的一个action来分发页面。” 我是按照这个思路做的,但不知道哪里出问题?

热门反馈

扫码入社