Tôi hiện đang trong quá trình học Struts 2 và hiện tôi đang xây dựng một ứng dụng đơn giản, nơi người dùng chưa được xác minh được chuyển hướng đến biểu mẫu đăng nhập.Chuyển hướng đến một hành động khác trong thiết bị chặn trong thanh chống 2
Tôi có biểu mẫu đăng nhập và chức năng hành động lấy thông tin người dùng, xác minh và lưu trữ đối tượng Người dùng trong phiên, tuy nhiên tôi hiện đang cố gắng ngăn truy cập vào các trang trước khi đăng nhập diễn ra và tôi đang cố gắng thực hiện điều này với một kẻ đánh chặn. Vấn đề của tôi là tôi đã viết một máy đánh chặn kiểm tra xem đối tượng người dùng đã được lưu trong phiên hay chưa nhưng nếu nó không muốn chuyển hướng đến trang đăng nhập và không thể tìm thấy cách nào để thực hiện điều này mà không bỏ qua thanh chống và sử dụng phương pháp HttpServletResponse.sendRedirect
Cấu hình:
<package name="mypackage" extends="struts-default" namespace="/admin">
<interceptors>
<interceptor name="login" class="my.LoginInterceptor" />
</interceptors>
<default-interceptor-ref name="login"/>
<action name="login" class="my.LoginAction">
<result name="input">/admin/login.jsp</result>
<result name="success" type="redirect">/admin</result>
</action>
<action name="private" class="my.PrivateAction">
<result>/admin/private.jsp</result>
</action>
</package>
mã đánh chặn:
@Override
public String intercept(ActionInvocation inv) throws Exception {
Map<String, Object> session = inv.getInvocationContext().getSession();
Object user = session.get("user");
if(user == null) {
// redirect to the 'login' action here
}
else {
return inv.invoke();
}
}
Cảm ơn bạn, và nhờ thêm cho sự chỉ đạo tiền thưởng. Làm thế nào tôi sẽ đi về ngăn chặn các interceptor từ bắt các hành động đăng nhập? – 3urdoch
Trên thực tế, tôi đã làm việc đó cho bản thân mình, tôi chỉ cần đặt vào hành động đăng nhập. –
3urdoch
Vâng, đó là một cách. – leonbloy