2013-08-22 30 views
3

我在JSP中編寫了以下代碼。根據標記文件中的TLD或屬性指令,屬性名稱不接受任何表達式

<% 
String p_loginPassword = OpeCommon.LOGIN_PASSWORD; 
String p_encryptCode = OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE); 
%> 
<s:url id="printURL" action="actMod" method="printout"> 
    <s:param name="<%=OpeCommon.LOGIN_PASSWORD %>"><%=OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE)%></s:param> 
</s:url> 

它顯示錯誤:根據TLD或標籤文件屬性指令,屬性名稱不接受任何表情

我應該怎麼寫爲,請給我一些建議。

回答

3

不要在struts標籤使用小腳本,不使用它在所有的JSP,如果你不能,你可以嘗試

<s:set var="loginPassword"><%=OpeCommon.LOGIN_PASSWORD %></s:set> 
<s:param name="%{#loginPassword}"><%=OpeCommon.encriptPassword(OpeCommon.KEY_USER_ID, OpeCommon.KEY_USER_PASSCODE)%></s:param> 

注意,該常數可以通過訪問OGNL表達式,並且該表達式在struts標記中是允許的。但是,它適用於OGNL語法,您應該將FQCN提供給靜態內容。常量不需要在配置中啓用靜態訪問,但需要調用靜態方法。如果你允許靜態訪問,那麼一切都可以通過OGNL表達式完成,如果不僅可以訪問常量,如

<s:param name="%{@[email protected]_PASSWORD}"> 
相關問題