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的属性的名称。

猜你喜欢

转载自www.cnblogs.com/123456www/p/12625198.html
今日推荐