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

  • 相关阅读:
    2021
    关于react,vue框架的搭建及bug处理
    centOS7使用
    git初探
    项目分享技术大会总结
    angular中的异常机制与异常之外的处理
    angluarjs中指令的使用方式
    Servlet知识总结
    有时候真的需要一点点改变
    story
  • 原文地址:https://www.cnblogs.com/123456www/p/12625198.html
Copyright © 2020-2023  润新知