tag.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %> <!-- 导入Struts2标签库 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<!-- struts2表单标签 -->
<!-- 好处1: 内置了一套样式. -->
<!-- 好处2: 自动回显,根据栈中的属性(OGNL) -->
<!-- theme:指定表单的主题(样式)
xhtml:默认
simple:没有主题 (没有内置的样式)
-->
<s:form action="Demo1Action" namespace="/" theme="xhtml" > <!-- form标签,action属性和普通form元素的不同 -->
<s:textfield name="name" label="用户名" ></s:textfield>
<s:password name="password" label="密码" ></s:password>
<s:radio list="{'男','女'}" name="gender" label="性别" ></s:radio> <!-- {}表示OGNL表达式创建List对象;单选按钮的value和显示的'男'/'女'保持相同 -->
<s:radio list="#{1:'男',0:'女'}" name="gender" label="性别" ></s:radio> <!-- OGNL表达式创建Map对象;1/0表示单选按钮的value -->
<s:checkboxlist list="#{2:'抽烟',1:'喝酒',0:'烫头'}" name="hobby" label="爱好" ></s:checkboxlist>
<s:select list="#{2:'大专',1:'本科',0:'硕士'}" headerKey="" headerValue="---请选择---" name="edu" label="学历" >
</s:select>
<s:file name="photo" label="近照" ></s:file>
<s:textarea name="desc" label="个人简介" ></s:textarea>
<s:submit value="提交" ></s:submit>
</s:form>
<s:actionerror/> <!-- 非表单标签;显示Action的错误信息 -->
</body>
</html>
Demo1Action.java:
package cn.xxx.tag;
import java.util.ArrayList;
import java.util.List;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class Demo1Action extends ActionSupport {
private String name; // 属性有getter和setter方法;属性驱动 接收参数;结合表单标签可以实现表单回显 (OGNL)
public String execute() throws Exception {
System.out.println(name);
this.addActionError("Action的错误信息!"); // jsp页面中通过 <s:actionerror/>标签显示该错误信息。
return SUCCESS;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
src/struts.xml(Struts2的配置文件):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="tag" namespace="/" extends="struts-default" >
<action name="Demo1Action" class="cn.xxx.tag.Demo1Action" method="execute" >
<result name="success" type="dispatcher" >/tag.jsp</result>
</action>
</package>
</struts>