如果我在struts应用程序中实现Synchronizer Token,我是否需要编辑所有表单以为令牌添加某种标记,还是由struts自动完成?
答案 0 :(得分:1)
操作的saveToken()
方法会生成一个令牌并将其置于会话范围内,然后html:form
标记会自动将令牌添加到您的页面中。
以下是html:form
自定义代码处理程序的代码段:
String token = (String) session.getAttribute(Globals.TRANSACTION_TOKEN_KEY);
if (token != null) {
results.append("<input type=\"hidden\" name=\"");
results.append(Constants.TOKEN_KEY);
results.append("\" value=\"");
results.append(token);
if (this.isXhtml()) {
results.append("\" />");
} else {
results.append("\">");
}
}
因此,如果您使用Struts html:form
标签,则无需执行任何操作,Struts将负责添加字段。如果您使用经典HTML表单标记,则必须自己添加字段。