3

ビューテクノロジとしてタイルを使用するSpringWebアプリケーションでユーザビリティの問題が発生します。現時点では、すべてのページが同じようHEAD_TITLEに表示され、PAGE_TITLEページ固有です。

 <html>
 <head><title>HEAD_TITLE</title></head>
 <body>
 <h1>PAGE_TITLE</h1>
 </body>
 </html>

ブラウザの履歴に同じタイトルのアプリケーションのすべての異なるページが表示されるため、これはユーザビリティの大きな問題です。すべてのページで同じである理由は、をとしてHEAD_TITLE使用するための合理的な方法が見つからなかったためです。PAGE_TITLEHEAD_TITLE

ほとんどの場合、PAGE_TITLEはタグ付きのメッセージバンドルから取得され<fmt:message />、いくつかのパラメータがそれに渡されます。タイルのレイアウトは、Webアプリのすべてのページが、他のものの中でページの要素HEAD_TITLEを定義する同じ共通のレイアウトを使用するため、その時点ですでに設定されている必要があります。<HEAD>

このユーザビリティの問題を解決する方法について何か提案はありますか?すべてのページのSpringコントローラーで「pageTitle」リクエスト属性を設定し、それをPAGE_TITLEおよびとして使用する必要がありHEAD_TITLEますか?または、ページ固有のJSPでHEAD_TITLEを設定することは可能ですか?

4

1 に答える 1

1

一般的な定義を作成し、headTitle および pageTitle 属性を定義します。

<definition name="threeColumnLayout" template="/WEB-INF/ThreeColumnLayout.jsp" >
    <put-attribute name="headTitle" value="" />
    <put-attribute name="pageTitle" value="" />
    <put-attribute name="left" value="/WEB-INF/left.jsp" />
    <put-attribute name="middle" value="" />
    <put-attribute name="right" value="/WEB-INF/right.jsp" />
</definition>

より具体的な定義で適切な値を設定してください。

<definition name="/user/new" extends="threeColumnLayout">
    <put-attribute name="headTitle" value="Administration" />
    <put-attribute name="pageTitle" value="Create User" />
    <put-attribute name="middle" value="WEB-INF/views/UserCreate.jsp" />
</definition>

タグを使用<tiles:getAsString />して、jsp ページでそのような値を取得します。

<head>
    <title><tiles:getAsString name="headTitle"/></title>
</head>
<body>
    <h1>
        <title><tiles:getAsString name="pageTitle"/></title>
    </h1>
</body>

参照:- http://tiles.apache.org/framework/tiles-jsp/tagreference.html#tiles:getAsString

于 2010-11-22T20:23:25.830 に答える