问题描述
我正在尝试在每个表单都有唯一名称的表单中设置struts标记。有没有办法以< s:token name =<一些随机生成的字符>
的方式设置令牌。我打算使用TokenHelper.generateGUID()来生成令牌名称,如果可能的话。我尝试使用设置变量< s:set var =tokenNamevalue =<%= TokenHelper.generateUID()%>/>
,然后使用< s:token name =$ {tokenName}/>
设置令牌。我在设置标签时遇到错误。以下是表单的一般代码流程。
I'm trying to set a struts token in a form with a unique name for each form. Is there way to set up the token in a way like <s:token name="<some random generated characters>"
. I was planning to use the TokenHelper.generateGUID() to generate the token name, if possible. I've tried setting a variable using <s:set var="tokenName" value="<%=TokenHelper.generateUID()%>"/>
, then setting the token using <s:token name="${tokenName}"/>
. I'm getting tld error about setting the in the tag. Here is the general code flow of the form.
这里是我尝试过的东西,但结果相同。
here are the things that i've tried, but got the same result.
<%@ page import="org.apache.struts2.util.TokenHelper" %>
<s:form action="actionName_method" name="actionName" method="post">
<s:token name="<%=TokenHelper.generateGUID()%>"/>
<s:hidden ....
.... rest of the fields go here ....
<s:submit value="save" name="submit"/>
</s:form>
我试过的另一个是,
<%@ 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>
这是我对tld文件中函数f:generateGUID()的定义。
Here is the my definition of the function f:generateGUID() in the tld file.
<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>
提前谢谢。
推荐答案
是的,可以设置一个令牌名称
Yes, it's possible to set a token name with
<s:token name="%{tokenName}"/>
它将生成两个隐藏字段,一个用于令牌名称,另一个用于令牌值。确保第一个字段的值对应于第二个字段的名称。
It will generate two hidden fields one for the token name and another for the token value. Make sure the value of the first field corresponds to the name of the second field.
操作属性 tokenName
是初始化如
tokenName = TokenHelper.generateGUID();
或
tokenName = UUID.randomUUID().toString();
还要确保表单使用 POST
方法。
Also make sure the form is using POST
method.
这篇关于是否可以使用GUID作为标记名称设置struts标记?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!