私は次の問題に直面しました。私は2種類のメニュー(家庭教師と学生用)を使用しています。そして、ロールログインユーザーに応じてメニューを含めることにしました。すべてがOKです。しかし、私は次の構造を使用します:
<div class="left">
<c:if test="${role eq 'TUTOR'}">
<c:import url="/page/tutor/menuForTutor.jsp" charEncoding="UTF-8"/>
</c:if>
<c:if test="${role eq 'STUDENT'}">
<c:import url="/page/student/menuForStudent.jsp" charEncoding="UTF-8"/>
</c:if>
</div>
使う'eq'
のは悪いスタイルだと言われます。この状況を回避しようとしました。ユーザーのタグを作成しました。でも次にやるとき
if (Role.TUTOR.equals(role)) {
try {
pageContext.getOut().write("<c:import url=\"/page/tutor/menuForTutor.jsp\" charEncoding=\"UTF-8\"/>");
} catch (IOException ex) {
Logger.getLogger(MenuTag.class.getName()).log(Level.SEVERE, null, ex);
}
私が理解しているように、htmlの変換jspは、ユーザーのタグを作成する前に発生するため、期待どおりに取得できません。
私が望む他の方法を教えてもらえますか?ありがとう
PSまた、メニュー(fmt)のjspファイルでローカリゼーションを使用します
<fmt:bundle basename="by.bsuir.testing.resource.content" prefix="content.">
<fmt:message key="menu" var="Menu"/>
<fmt:message key="startPage" var="StartPage"/>
<fmt:message key="menuitem.editInfoAboutTest" var="MenuItemEditInfoAboutTest"/>
</fmt:bundle>
<h1>${Menu}</h1>
<ul>
<li>
<a href="${pageContext.servletContext.contextPath}/page/common/login.jsp">
${StartPage}
</a>
</li>
<li>
<a href="controller?command=all_Subject_Edit">
${MenuItemEditInfoAboutTest}
</a>
</li>
</ul>