会不同。
首先看一下Action的代码:
package tutorial;
import com.opensymphony.xwork2.ActionSupport;
public class CoolTagAction extends ActionSupport {
private static final long serialVersionUID = 6820659617470261780L;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
@Override
public String execute() {
System.out.println("Executing action, your message is " + message);
return SUCCESS;
}
}
清单7 src/tutorial/CoolTagAction.java
Strus2的新表单标志的使用(4)
时间:2011-04-13 max
以上代码一目了然,再看看JSP的写法:
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Struts 2 Cool Tags - <s:token/ ></title>
<s:head />
</head>
<body>
<h2><s:token/></h2>
<s:actionerror />
<s:form action="Token" >
<s:textfield name="message" label="Message" />
<s:token />
<s:submit />
</s:form>
</body>
</html>
清单8 WebContent/token.jsp
JSP也很简单,就是加入<s:token />标志。接下来是Actoin配置的XML片段:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="Struts2_COOL_TAGS_DEMO" extends="struts-default">
<action name="Token" class="tutorial.CoolTagAction">
<interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
<result name="invalid.token">/token.jsp</result>
<result>/token.jsp</result>
</action>
<action name="*">
<result>/{1}.jsp</result>
</action>
</package>
</struts>
清单9 src/struts.xml
Strus2的新表单标志的使用(5)
时间:2011-04-13 max
以上XML片段值注意的是加入了“token”拦截器和“invalid.token”结果,因为“token ”拦截器在会话token与请求token不一致时,将会直接返回“invalid.token”结果。
发布运行应用程序,在浏览器中键入: http://localhost:8080/Struts2_CoolTags/token.jsp,出现如下图所示页面:
清单10 正常显示的token.jsp页面
随便填点东西并提交页面,一切正常返回以上页面,然后按“F5”刷新页面,在弹出的对 话框中点击“Retry”,出现如下图所示页面:
|