<%! int role; >
<%
UserMasterDTO userMasterDTO=(UserMasterDTO)session.getAttribute("userMasterDTO");
role = userMasterDTO.getRole();
%>
代碼我想這個值由我的支柱,如果標籤讀取。如何實現這一目標?
下面的代碼不正確的方式?
<s:if test="role == 1">
<%! int role; >
<%
UserMasterDTO userMasterDTO=(UserMasterDTO)session.getAttribute("userMasterDTO");
role = userMasterDTO.getRole();
%>
代碼我想這個值由我的支柱,如果標籤讀取。如何實現這一目標?
下面的代碼不正確的方式?
<s:if test="role == 1">
嘗試支柱2.x的 '如果' 標籤:
<s:if test="#session.userMasterDTO.role==1">
或
<s:set name='role' value=xxxx>
決不使用JSP中的Java代碼/模板是個好習慣。
我找到了答案 <%! \t int role; int getRole() { System.out.println(role); \t 返回角色; } %> <(%)= getRole()%> 然後我可以在比較,如果如下面 –
user1950540
@ user1950540僅僅因爲它*可能*並不意味着它是一個好主意;這太可怕了。 –
@imxylz:你需要使用'#'來訪問會話'' –
請注意,在servlet中使用實例變量會導致現實生活中的各種問題;因爲這是一個角色,所以你正在暴露一個巨大的安全漏洞。也就是說,這在多個層面上是錯誤的 - 沒有理由使用scriptlet來做到這一點。但是,是的,你顯示的代碼不是正確的方式:S2標籤從值棧中獲取值,而不是servlet實例變量。 JSTL標籤也沒有,順便說一句,雖然他們不使用價值堆棧。 –