Java 是否可以将GUID设置为令牌名称的struts令牌?
我试图在表单中设置一个struts令牌,每个表单都有一个唯一的名称。有没有办法像Java 是否可以将GUID设置为令牌名称的struts令牌?,java,jsp,struts2,token,ognl,Java,Jsp,Struts2,Token,Ognl,我试图在表单中设置一个struts令牌,每个表单都有一个唯一的名称。有没有办法像那样设置令牌是的,可以用 <s:token name="%{tokenName}"/> 或 还要确保表单使用的是POST方法 您也可以使用。另一个注意事项,我尝试使用f:generateGUID()类似的方法,仅使用或类似的方法显示内容,它会显示随机键。它是否在使用我正在使用的函数(f:generateGUID())生成随机键之前处理s:token标记?@Braj我是否只是用UUID替换TokenHel
那样设置令牌是的,可以用
<s:token name="%{tokenName}"/>
或
还要确保表单使用的是POST
方法 您也可以使用。另一个注意事项,我尝试使用f:generateGUID()类似的方法,仅使用或类似的方法显示内容,它会显示随机键。它是否在使用我正在使用的函数(f:generateGUID())生成随机键之前处理s:token标记?@Braj我是否只是用UUID替换TokenHelper,并使用UUID.randomUUID()而不是TokenHelper.generateGUID?对不起,我在Struts
方面没有太多经验。我刚才告诉过你另一种在JAVA中生成随机密钥的方法。可能有人会帮助你,在Struts方面的专家。等一段时间。@Braj另一种方法也是可能的。令牌名称应该是随机密钥吗?非常感谢。工作得很有魅力。接下来的一个问题是,在设置属性时使用%{}、${}和#{}有什么区别?在JSP中,struts标记中使用%{}
强制OGNL计算括号中的表达式,${}
用于EL表达式,{}
表示创建映射。
<%@ page import="org.apache.struts2.util.TokenHelper" %>
<s:set var="tokenName" value="${f:generateGUID()}"/>
<!-- I defined generateTokenName as a tld function using the TokenHelper class -->
<s:form action="actionName_method" name="actionName" method="post">
<s:token name="${tokenName}"/>
<s:hidden ....
.... rest of the fields go here ....
<s:submit value="save" name="submit"/>
</s:form>
<function>
<description>This will generate the a unique tokenName</description>
<name>generateGUID</name>
<function-class>org.apache.struts2.util.TokenHelper</function-class>
<function-signature>java.lang.String generateGUID()</function-signature>
</function>
<s:token name="%{tokenName}"/>
tokenName = TokenHelper.generateGUID();
tokenName = UUID.randomUUID().toString();