Struts2 入门介绍及代码实例
什么是 Struts2?
Struts2 是一个基于 Java 网络应用框架,使用 MVC 设计模式,将应用程序分成模型、视图和控制器(model-view-controller,MVC)三部分,它由 Apache 软件基金会主导开发,是 Struts1 的升级版, 通过 Struts2 可以极大地简化 Web 应用的开发过程。
Struts2 开发环境准备
- 操作系统: Windows 或 Linux
- JDK 版本: 1.7 或以上
- Tomcat 版本: 7.x 或以上
- Struts2 版本: 2.x
Struts2 框架开发步骤
步骤 1:创建 Web 项目
在 Eclipse 中新建 Web 项目,设置好项目名称、服务器名称和服务器运行环境。
步骤 2:导入 Struts2 框架
将下载好的 Struts2 jar 包导入到项目中。在 Eclipse 中右键点击项目,选择 Properties -> Java Build Path -> Libraries,在右侧的界面中选择 Add External JARs,找到下载的 Struts2 jar 包导入即可。
步骤 3:配置 struts.xml
在 Web 项目的 WebContent/WEB-INF 下新建 struts.xml 配置文件,Struts2 框架需要在这个文件中配置一些参数及拦截器等功能。
<?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>
<constant name="struts.enable.DynamicMethodInvocation" value="false" />
<constant name="struts.devMode" value="false" />
<package name="default" extends="struts-default">
<action name="index">
<result>/index.jsp</result>
</action>
<action name="helloWorld" class="com.example.HelloWorldAction">
<result name="success">/helloWorld.jsp</result>
<result name="failure">/error.jsp</result>
</action>
</package>
</struts>
步骤 4:编写 Action 类
Action 就是一个 Java 类,它用于接收来自客户端的请求,并处理请求后返回结果。
public class HelloWorldAction extends ActionSupport {
private String message;
public String execute() throws Exception {
setMessage("Hello World from Struts2.");
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
步骤 5:编写 JSP 页面
<html>
<head><title>Hello World Example</title></head>
<body>
<h1><s:property value="message"/></h1>
</body>
</html>
Struts2 常用标签
<s:if>
标签:用于条件控制,如控制页面上某些内容的显示或隐藏。
<s:if test="%{userName != null}">
Hello <s:property value="userName"/>!
</s:if>
<s:iterator>
标签:用于迭代集合类型的数据,将集合中的每个元素生成多个 HTML 元素。
<s:iterator value="students">
<tr>
<td><s:property value="name"/></td>
<td><s:property value="age"/></td>
<td><s:property value="sex"/></td>
</tr>
</s:iterator>
Struts2 数据库操作示例
为了展示 Struts2 的数据库操作,下面提供一个用户信息管理的示例。
- 创建数据库表:
CREATE TABLE `user_info` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(20) NOT NULL,
`email` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
- 在
struts.xml
中配置拦截器和 Action:
<package name="default" extends="struts-default">
<action name="login" class="com.example.LoginAction">
<interceptor-ref name="basicStack"/>
<result name="success">/loginSuccess.jsp</result>
<result name="error">/loginError.jsp</result>
</action>
</package>
- 编写 LoginAction 类:
public class LoginAction extends ActionSupport {
private String username;
private String password;
public String execute() throws Exception {
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "password";
conn = DriverManager.getConnection(url, user, password);
String sql = "select * from user_info where username=? and password=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, username);
pstmt.setString(2, password);
rs = pstmt.executeQuery();
if (rs.next()) {
return SUCCESS;
} else {
return ERROR;
}
} catch (SQLException e) {
e.printStackTrace();
return ERROR;
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
if (pstmt != null) {
try {
pstmt.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
}
}
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
- 编写登录页面
login.jsp
:
<html>
<head>
<title>Login Page</title>
</head>
<body>
<s:form action="login">
<s:textfield name="username" label="Username" />
<s:password name="password" label="Password" />
<s:submit value="Sign In"/>
</s:form>
</body>
</html>
以上为 Struts2 入门介绍及代码实例的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2入门介绍及代码实例 - Python技术站