struts.xml相关配置
注意:
1.namespace="/user" 该属性定义包的命名空间,用来提供查找action,需要在form标签的action里加 user/
2.运行时候把{1}的内容自动替换成URL中的* 所对应的,就比如当提交新增form时,{1}就被替换成add.然后跳转到addPage.jsp
<package name="mypack" namespace="/user" extends="struts-default">
<!-- Struts2 2.3以后的版本使用通配符调用方法的时候,需要添加一条如下语句 -->
<global-allowed-methods>regex:.*</global-allowed-methods>
<action name="*user" class="com.cqie.ssh.action.UserAction" method="{1}">
<result name="input">/index.jsp</result>
<result name="success">/WEB-INF/{1}Page.jsp</result>
<result name="ERROR">/WEB-INF/error.jsp</result>
</action>
</package>
UserAction.java
1.定义name,pwd,phone…属性
2.添加get,set方法
3.写一个add方法,通过UserDao.java pst.executeUpdate();返回一个值判断添加是否成功
public String add(){
System.out.print(getName());
UserDao userDao = new UserDao();
int ret = userDao.saveUser(getName(), getSex(), getPhone(), getEmail(), getPwd());
if(ret>0){
return SUCCESS;
}else{
return ERROR;
}
}
UserDao.java
如果添加成功则return pst.executeUpdate();会返回1,否则return -1;返回-1
public class UserDao{
private static Logger logger = LoggerFactory.getLogger(UserDao.class);
private static DBConn dbConn = new DBConn();
public int saveUser(String name, Integer sex, String phone, String email, int pwd){
Connection conn = null;
PreparedStatement pst = null;
String sql = "insert into user_info(name, sex, phone, email, pwd) values(?,?,?,?,?)";
try{
conn = dbConn.getConnection();
pst = conn.prepareStatement(sql);
pst.setString(1, name);
pst.setInt(2, sex);
pst.setString(3, phone);
pst.setString(4, email);
pst.setInt(5, pwd);
return pst.executeUpdate();
} catch(Exception e){
e.printStackTrace();
logger.info("出现异常了:", e.getMessage());
return -1;
} finally{
try {
if(pst!=null)
pst.close();
if(conn!=null)
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
DBConn.java连接数据库(我用的mysql8.0)
记得修改root,填写自己数据库的账号和密码
package com.cqie.ssh.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DBConn {
private static Connection conn;
public Connection getConnection() throws SQLException{
try{
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?useSSL=false", "root", "root");
} catch(ClassNotFoundException ex){
ex.printStackTrace();
}
return conn;
}
}
最后还有一个添加成功后返回自己添加的信息的页面
<body>
这是新增后跳转的页面====================<br>
您输入的内容是:<br/>
用户名:<s:property value="name"/><br/>
密码:<s:property value="pwd"/><br/>
性别:<s:property value="sex"/><br/>
电话:<s:property value="phone"/><br/>
邮箱:<s:property value="email"/><br/>
</body>