我正在使用Spring 3.0并使用spring security进行登录。我已将login.jsp页面放在webapp文件夹中,我正在尝试使用消息进行本地化支持,例如:
<spring:message code="label.title"/>
不幸的是,jsp找不到给出错误的消息:
javax.servlet.ServletException:javax.servlet.jsp.JspTagException:在代码'label.title'下找不到针对locale'en_US'的消息
当我在通过控制器的jsp中使用消息代码时,它可以正常工作。
由于当用户未登录时,spring security会重定向到login.jsp页面,因此将在没有控制器的情况下(直接)处理页面。
任何人都知道如何在不通过控制器时让jsp看到资源包吗?
谢谢!
答案 0 :(得分:3)
你必须强制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 ...)创建名为“login”的视图
答案 1 :(得分:1)
使用
<%@taglib uri="http://www.springframework.org/tags" prefix="spring"%>
然后直接在jsp中引用内容
<spring:message code="lable.name" />