struts2系列学习笔记(2)---------------从HelloWorld开始
2011-01-18 15:01
507 查看
本案例只用到最核心的Struts2框架内容,一个至简的HelloWorld程序.
用户在第一个页面中可以输入:姓名 点击[Login]按钮.即可在第二个页面中显示出 Hello xxx(用户输入的姓名)
基于Struts2的实现需要
1. 编写3个程序:
视图: InputName.jsp (第一个页面)
HelloName.jsp(第二个页面)
控制器: action.LoginAction.java
2. 配置struts.xml文件
======================================
具体程序内容:
************************* InputName.jsp ****************************
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!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=ISO-8859-1">
<title>InputName page</title>
</head>
<body>
<s:form action="loginAction">
Name:<s:textfield name="inputName"></s:textfield>
<s:submit name="submit" value="Login"></s:submit>
</s:form>
</body>
</html>
这是一个JSP文件,使用框架与普通的JSP/Servlet技术下的区别就是使用了Struts2提供的标记
<%@taglib uri="/struts-tags" prefix="s"%> :该标记用于引入Struts2标记库,前缀通常定义为s.
本页面中使用的了3个form相关的标记:
1. <s:form action="loginAction">
该标签用于生成HTML的<form>标签
action属性: 不是必需的,默认值为当前的action,类型为String. 说明:指定提交到的action的名字,不要添加.action的后缀
本例中action的值:loginAction 与struts.xml配置文件中action标记的name属性值loginAction一致
2. <s:textfield name="inputName"></s:textfield>
该标签用于生成HTML的<input type="text">标签
name属性:该属性是Struts2标签库的通用属性,类型为String.说明:指定表单元素的name映射,该属性的值与action的属性对应
3. <s:submit name="submit" value="Login"></s:submit>
该标签用于生成HTML的<input type="submit">标签,<input type="image">标签,<button type="submit">标签
name属性:同上
value属性:该属性是Struts2标签库的通用属性,类型为String.说明:指定HTML表氮元素的value属性
type属性:该属性不是必需的,本例中未指定该属性即使用默认值input,类型为String,说明:要使用的提交按钮的类型,有效值为:input,image,button
************************* HelloName.jsp ****************************
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Hello ${requestScope.name} !
</body>
</html>
本页面用于显示前页面输入的姓名,为了简单起见使用了EL,当然本例随着Struts2的不断学习还可以改用OGNL.此处暂不做说明.
************************* action.LoginAction.java ****************************
package action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction {
private String inputName;
public String getInputName() {
return inputName;
}
public void setInputName(String inputName) {
this.inputName = inputName;
}
public String execute(){
Map map = (Map)(ActionContext.getContext().get("request"));
map.put("name",inputName);
return "success";
}
}
Struts2的核心功能是Action,对于开发人员来说使用本框架的主要任务即为开发Action.该类可以是一个普通的java类,但是该必须至少提供一个方法,该方法的签名形如:public String execute().本例中提供的方法为:public String execute(),即当程序执行到Action类时执行该execute方法.该方法的返回值对应struts.xml配置文件中的 <result>标签的name属性值.该类中提供的属性对应于提交到该Action的前一个页面的标单组件的name属性值.
==================struts.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="default" extends="struts-default">
<action name="loginAction" class="action.LoginAction">
<result name="success">/HelloName.jsp</result>
</action>
</package>
</struts>
<package>标签为Struts2提供的包类似于Java中包的概念 name属性是必须的,是被其他包引用时的键;extends属性不是必须的,用于指定要扩展的包,本例中的属性值struts-default是struts-default.xml文件中定义的抽象包.(推荐做法)
<action>标签是框架中最基本的单元,用于每一个Action类的映射配置,该标签嵌套在 <package>标签内部.name属性是必须的,是action的名字(自定义),用于匹配请求的URI;class属性不是必须的,用于指定Action类的完整包名和类名
<result>标签用于配置结果映射,该标签的name属性值用于指定result的逻辑名,而实际的结果映射路径写在该标签的开始和结束标签之间.
用户在第一个页面中可以输入:姓名 点击[Login]按钮.即可在第二个页面中显示出 Hello xxx(用户输入的姓名)
基于Struts2的实现需要
1. 编写3个程序:
视图: InputName.jsp (第一个页面)
HelloName.jsp(第二个页面)
控制器: action.LoginAction.java
2. 配置struts.xml文件
======================================
具体程序内容:
************************* InputName.jsp ****************************
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib uri="/struts-tags" prefix="s"%>
<!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=ISO-8859-1">
<title>InputName page</title>
</head>
<body>
<s:form action="loginAction">
Name:<s:textfield name="inputName"></s:textfield>
<s:submit name="submit" value="Login"></s:submit>
</s:form>
</body>
</html>
这是一个JSP文件,使用框架与普通的JSP/Servlet技术下的区别就是使用了Struts2提供的标记
<%@taglib uri="/struts-tags" prefix="s"%> :该标记用于引入Struts2标记库,前缀通常定义为s.
本页面中使用的了3个form相关的标记:
1. <s:form action="loginAction">
该标签用于生成HTML的<form>标签
action属性: 不是必需的,默认值为当前的action,类型为String. 说明:指定提交到的action的名字,不要添加.action的后缀
本例中action的值:loginAction 与struts.xml配置文件中action标记的name属性值loginAction一致
2. <s:textfield name="inputName"></s:textfield>
该标签用于生成HTML的<input type="text">标签
name属性:该属性是Struts2标签库的通用属性,类型为String.说明:指定表单元素的name映射,该属性的值与action的属性对应
3. <s:submit name="submit" value="Login"></s:submit>
该标签用于生成HTML的<input type="submit">标签,<input type="image">标签,<button type="submit">标签
name属性:同上
value属性:该属性是Struts2标签库的通用属性,类型为String.说明:指定HTML表氮元素的value属性
type属性:该属性不是必需的,本例中未指定该属性即使用默认值input,类型为String,说明:要使用的提交按钮的类型,有效值为:input,image,button
************************* HelloName.jsp ****************************
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
Hello ${requestScope.name} !
</body>
</html>
本页面用于显示前页面输入的姓名,为了简单起见使用了EL,当然本例随着Struts2的不断学习还可以改用OGNL.此处暂不做说明.
************************* action.LoginAction.java ****************************
package action;
import java.util.Map;
import com.opensymphony.xwork2.ActionContext;
public class LoginAction {
private String inputName;
public String getInputName() {
return inputName;
}
public void setInputName(String inputName) {
this.inputName = inputName;
}
public String execute(){
Map map = (Map)(ActionContext.getContext().get("request"));
map.put("name",inputName);
return "success";
}
}
Struts2的核心功能是Action,对于开发人员来说使用本框架的主要任务即为开发Action.该类可以是一个普通的java类,但是该必须至少提供一个方法,该方法的签名形如:public String execute().本例中提供的方法为:public String execute(),即当程序执行到Action类时执行该execute方法.该方法的返回值对应struts.xml配置文件中的 <result>标签的name属性值.该类中提供的属性对应于提交到该Action的前一个页面的标单组件的name属性值.
==================struts.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="default" extends="struts-default">
<action name="loginAction" class="action.LoginAction">
<result name="success">/HelloName.jsp</result>
</action>
</package>
</struts>
<package>标签为Struts2提供的包类似于Java中包的概念 name属性是必须的,是被其他包引用时的键;extends属性不是必须的,用于指定要扩展的包,本例中的属性值struts-default是struts-default.xml文件中定义的抽象包.(推荐做法)
<action>标签是框架中最基本的单元,用于每一个Action类的映射配置,该标签嵌套在 <package>标签内部.name属性是必须的,是action的名字(自定义),用于匹配请求的URI;class属性不是必须的,用于指定Action类的完整包名和类名
<result>标签用于配置结果映射,该标签的name属性值用于指定result的逻辑名,而实际的结果映射路径写在该标签的开始和结束标签之间.
相关文章推荐
- struts2系列学习笔记(13)---------------Struts2国际化
- struts2系列学习笔记(10)---------------配置方式的验证1
- struts2系列学习笔记(12)---------------Struts2在OGNL基础上的增强
- 浪曦_Struts2应用开发系列_第2讲.Struts2的类型转换-学习笔记
- struts2系列学习笔记(11)---------------拦截器
- Struts2-学习笔记系列(9)-OGNL类型转换和类型绑定
- struts2系列学习笔记(1)---------------Struts2.2.1项目环境手动构建
- Struts2-学习笔记系列(10)-自定义类型转换
- [struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤
- [struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤
- struts2系列学习笔记(3)---------------理解Struts2的核心流程
- struts2系列学习笔记(5)---------------Action的package配置
- Struts2-学习笔记系列(11)-使用StrutsTypeConverter
- [struts2学习笔记] 第三节 创建struts 2 HelloWorld所需的六个步骤
- cocos2dx游戏开发学习笔记2-从helloworld开始
- struts2系列学习笔记(4)---------------Action的多样化配置之一
- Struts2-学习笔记系列(2)-常量配置和实现action
- Struts2-学习笔记系列(12)-set集合
- struts2系列学习笔记(6)---------------Action的结果处理
- Struts2-学习笔记系列(3)-返回视图