struts框架的基本使用
环境:myeclipse2013+tomcat7+strut2
struts是MVC的一种实现,他使用action来进行前台与后台数据库的交互,这里以添加数据为例:
(1)首先新建web项目并为项目安装struts:(安装好之后就发现src目录下多了一个名为struts的xml文件,并且struts相关的包已经成功导入,struct.xml是非常重要的配置文件,下面会说)

(2)编写前台代码:
<html>
<head>
<title>bookAdd.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
</head>
<body>
<center>
<br><br>添加书籍信息<br>
<form name="f1" id="f1" action="action/bookAdd.action" method="post">
<table border="0">
<tr>
<td>id:</td>
<td><input type="text" name="id" id="ID"></td>
</tr>
<tr>
<td>书名:</td>
<td><input type="text" name="name" id="Name"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value=" 确定 " ></td>
</tr>
</table>
</form>
</center>
</body>
</html>
(3)编写action代码:(注意action中的属性要与前台html代码中的标签的name属性名称相同才能实现传值,action中通过属性的get方法得到传过来的值,通过execute()方法对数据进行操作)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class bookAdd extends ActionSupport{
String name;
String id;
String msg;
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@Override
public String execute() throws Exception
{
// 添加数据
Connection con = null;
Statement stmt = null;
String db_url = "jdbc:mysql://localhost:3306/stu?useUnicode=true&characterEncoding=utf8";
String db_user = "root";
String db_pass = "123456789";
try
{
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(db_url, db_user, db_pass);
String strSql = "insert into book values('" + getId() + "','" + getName() + "')";
stmt = con.createStatement();
stmt.execute(strSql);
}
catch (Exception e)
{
setMsg("id重复!");
return "Error";
}
return "Success";
}
}
(4)在strut.xml中对action进行配置(在struts标签下添加如下代码):
<package name="default" namespace="/action" extends="struts-default"> <action name="bookAdd" class="crud.bookAdd"> <result name="Success">../bookList.jsp</result> <result name="Error">../Error.jsp</result> </action> </package>
其中package标签的namespace属性决定了我们对action的访问路径,这里的namespace="/action",所以我们在通过表单访问的时候,表单的action属性就应该设置为:
action="action/bookAdd.action"
action的name属性应该与申请访问该action的jsp文件或者html文件名称相同,class属性是action的路径.action的名称。
result标签决定action结束之后跳转的页面,其中的name属性对应action的返回值。
(5)上面说的是一种前台界面向action传值的方法,下面是通过超链接的方式向action传值,原理是一样的,传值方法如下:
<a href="action/bookDelete.action?id=<%=rs.getString("id")%>">通过超链接的方式给action传值</a> </td>
这样的方法同样,传递参数的名称‘id’对应着action的属性的名称。
浙公网安备 33010602011771号