一尘不染

直接调用JSP时,可以在Spring中使用Message Resource Bundle吗?

jsp

我正在使用Spring 3.0并使用Spring
Security进行登录。我已将login.jsp页面放置在webapp文件夹中,并且尝试使用消息进行本地化支持,例如:

<spring:message code="label.title"/>

不幸的是,jsp找不到给出错误的消息:

javax.servlet.ServletException:javax.servlet.jsp.JspTagException:在代码“
label.title”下找不到语言环境“ en_US”的消息

当我在通过控制器的jsp中使用消息代码时,它工作正常。

由于当用户未登录时spring安全性将重定向到login.jsp页面,因此无需控制器即可直接处理该页面。

没有人知道如何在不通过控制器的情况下使jsp也看到资源束吗?

谢谢!


阅读 301

收藏
2020-06-10

共1个答案

一尘不染

您必须强制Spring呈现页面login.jsp,该页面实际上不受Spring管理。因此,创建一个虚拟控制器:

/**
 * UI Controller that renders the signin-form.
 */
@Controller
public class SigninController {

    /**
     * Render the signin form to the person as HTML in their web browser.
     * Returns void and relies in request-to-view-name translation to kick-in to
     * resolve the view template to render.
     */
    @RequestMapping(value = "/login", method = RequestMethod.GET)
    public void login() {
    }
}

并根据您使用的ViewResolver(TilesViewResolver,UrlBasedViewResolver …)创建名为“登录”的视图

2020-06-10