1

ページ「login.jsp」では、変数「title」の値を「default.jsp」ページのタイトル タグ、具体的にはコード「arguments」に転送できません。ログイン URL にアクセスすると、ページのタイトルは実際には「{0} - CompanyName」です。それは正しくありません。「Login - CompanyName」のはずです。助けてください。

----layout/tiles.xml----
<tiles-definitions>
    <definition name="default" template="/WEB-INF/views/layout/default.jsp">
        <put-attribute name="header" value="/WEB-INF/views/layout/header.jsp" />
        <put-attribute name="footer" value="/WEB-INF/views/layout/footer.jsp" />
    </definition>
</tiles-definitions>

----users/tiles.xml----
<tiles-definitions>
    <definition extends="default" name="users/login">
        <put-attribute name="body" value="/WEB-INF/views/users/login.jsp" />
    </definition>
</tiles-definitions>

----layout/default.jsp----
<head>
    <title><spring:message code="title" arguments="${title}" />
</title>
</head>
<body>
    <tiles:insertAttribute name="header" ignore="true" />
    <tiles:insertAttribute name="body" />
    <tiles:insertAttribute name="footer" ignore="true" />
</body>

----users/login.jsp----
<spring:message code="title.login" var="title" />

----layout.properties----
title = {0} - CompanyName
title.login = Login 
4

1 に答える 1

1

修理済み。URL「/login」にアクセスすると、タイトルに「Login - CompanyName」と表示されます。「/blogs/123」にアクセスすると、タイトルは「Name123 - Blog - CompanyName」です。完璧なソリューション!

----servlet-context.xml----
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"
    p:fallbackToSystemLocale="false"
    p:basenames="WEB-INF/i18n/layout" />

----layout.properties----
title = {0} - CompanyName
title.login = Login
title.blog = {0} - Blog

----AccessController.java----
@Autowired
MessageSource messageSource;

@RequestMapping("/login")
public String login(Model model, Locale locale) {
    model.addAttribute("title",
            messageSource.getMessage("title.login", null, locale));
    return "access/login";
}

----BlogController.java----
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public String show(@PathVariable("id") Long id, Model model, Locale locale) {
    Blog blog = blogService.findById(id);
    model.addAttribute("title", messageSource.getMessage(
            "title.blog", new Object[] { blog.getName() },
            locale));
    return "blogs/show";
}
于 2013-01-25T04:06:52.510 に答える