用什么方法将strust2中s:select的值转成String
时间: 2023-05-17 22:07:14 浏览: 43
您可以使用getValue()方法将struts2中s:select的值转换为String。例如,如果您有一个名为“mySelect”的s:select标记,则可以使用以下代码将其值转换为String:
String mySelectValue = request.getParameter("mySelect");
相关问题
struts2增删改查项目mysql
Struts2 是一个基于 MVC 设计模式的 Web 应用程序框架,可以用于快速开发 Java Web 应用程序,而 MySQL 是一个流行的关系型数据库管理系统,可以存储和管理数据。下面是一个简单的 Struts2 增删改查项目,使用 MySQL 作为后端数据库:
1. 创建数据库
首先需要创建一个名为 "struts2_crud" 的数据库,然后创建一个名为 "users" 的表,包含以下字段:
id INT(11) PRIMARY KEY AUTO_INCREMENT
name VARCHAR(50)
email VARCHAR(50)
password VARCHAR(50)
2. 配置 Struts2
在项目中的 "WEB-INF" 文件夹下创建一个名为 "struts.xml" 的文件,添加以下内容:
```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="list" class="com.example.struts2crud.action.ListAction">
<result name="success">/list.jsp</result>
</action>
<action name="add" class="com.example.struts2crud.action.AddAction">
<result name="input">/add.jsp</result>
<result name="success" type="redirectAction">list</result>
</action>
<action name="edit" class="com.example.struts2crud.action.EditAction">
<result name="input">/edit.jsp</result>
<result name="success" type="redirectAction">list</result>
</action>
<action name="delete" class="com.example.struts2crud.action.DeleteAction" method="execute">
<result name="success" type="redirectAction">list</result>
</action>
</package>
</struts>
```
此配置文件定义了四个 action,分别是 "list"、"add"、"edit" 和 "delete"。
3. 创建 Java 类
创建以下四个 Java 类,分别对应上述四个 action:
ListAction.java:
```
package com.example.struts2crud.action;
import java.util.List;
import com.example.struts2crud.dao.UserDAO;
import com.example.struts2crud.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class ListAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private List<User> userList;
public String execute() {
try {
userList = new UserDAO().getAllUsers();
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public List<User> getUserList() {
return userList;
}
public void setUserList(List<User> userList) {
this.userList = userList;
}
}
```
AddAction.java:
```
package com.example.struts2crud.action;
import com.example.struts2crud.dao.UserDAO;
import com.example.struts2crud.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class AddAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
public String execute() {
try {
new UserDAO().addUser(user);
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
```
EditAction.java:
```
package com.example.struts2crud.action;
import com.example.struts2crud.dao.UserDAO;
import com.example.struts2crud.model.User;
import com.opensymphony.xwork2.ActionSupport;
public class EditAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private User user;
public String execute() {
try {
new UserDAO().updateUser(user);
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
```
DeleteAction.java:
```
package com.example.struts2crud.action;
import com.example.struts2crud.dao.UserDAO;
import com.opensymphony.xwork2.ActionSupport;
public class DeleteAction extends ActionSupport {
private static final long serialVersionUID = 1L;
private int id;
public String execute() {
try {
new UserDAO().deleteUser(id);
} catch (Exception e) {
e.printStackTrace();
}
return SUCCESS;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
```
4. 创建 JSP 页面
创建以下三个 JSP 页面:
list.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts2 CRUD Example</title>
</head>
<body>
<h2>Users List</h2>
<table border="1">
<tr>
<th>ID</th>
<th>Name</th>
<th>Email</th>
<th>Password</th>
<th>Action</th>
</tr>
<s:iterator value="userList">
<tr>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
<td><s:property value="email"/></td>
<td><s:property value="password"/></td>
<td>
<s:url id="editUrl" action="edit">
<s:param name="user.id" value="%{id}"/>
</s:url>
<s:url id="deleteUrl" action="delete">
<s:param name="id" value="%{id}"/>
</s:url>
<s:a href="%{editUrl}">Edit</s:a>
<s:a href="%{deleteUrl}">Delete</s:a>
</td>
</tr>
</s:iterator>
</table>
<br>
<s:url id="addUrl" action="add"/>
<s:a href="%{addUrl}">Add New User</s:a>
</body>
</html>
```
add.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts2 CRUD Example</title>
</head>
<body>
<h2>Add New User</h2>
<s:form action="add">
<s:textfield name="user.name" label="Name"/>
<s:textfield name="user.email" label="Email"/>
<s:textfield name="user.password" label="Password"/>
<s:submit value="Save"/>
</s:form>
<br>
<s:url id="listUrl" action="list"/>
<s:a href="%{listUrl}">Back to List</s:a>
</body>
</html>
```
edit.jsp:
```
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Struts2 CRUD Example</title>
</head>
<body>
<h2>Edit User</h2>
<s:form action="edit">
<s:hidden name="user.id"/>
<s:textfield name="user.name" label="Name"/>
<s:textfield name="user.email" label="Email"/>
<s:textfield name="user.password" label="Password"/>
<s:submit value="Save"/>
</s:form>
<br>
<s:url id="listUrl" action="list"/>
<s:a href="%{listUrl}">Back to List</s:a>
</body>
</html>
```
5. 创建 DAO 类
创建一个名为 "UserDAO.java" 的 DAO 类,用于操作数据库:
```
package com.example.struts2crud.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import com.example.struts2crud.model.User;
public class UserDAO {
public static final String URL = "jdbc:mysql://localhost:3306/struts2_crud";
public static final String USER = "root";
public static final String PASSWORD = "password";
public Connection getConnection() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
return DriverManager.getConnection(URL, USER, PASSWORD);
}
public List<User> getAllUsers() throws Exception {
List<User> userList = new ArrayList<>();
String sql = "SELECT * FROM users";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery()) {
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setName(rs.getString("name"));
user.setEmail(rs.getString("email"));
user.setPassword(rs.getString("password"));
userList.add(user);
}
}
return userList;
}
public void addUser(User user) throws Exception {
String sql = "INSERT INTO users (name, email, password) VALUES (?, ?, ?)";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, user.getName());
stmt.setString(2, user.getEmail());
stmt.setString(3, user.getPassword());
stmt.executeUpdate();
}
}
public void updateUser(User user) throws Exception {
String sql = "UPDATE users SET name = ?, email = ?, password = ? WHERE id = ?";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setString(1, user.getName());
stmt.setString(2, user.getEmail());
stmt.setString(3, user.getPassword());
stmt.setInt(4, user.getId());
stmt.executeUpdate();
}
}
public void deleteUser(int id) throws Exception {
String sql = "DELETE FROM users WHERE id = ?";
try (Connection conn = getConnection();
PreparedStatement stmt = conn.prepareStatement(sql)) {
stmt.setInt(1, id);
stmt.executeUpdate();
}
}
}
```
6. 运行项目
将以上代码保存到项目中,然后启动项目,访问 "http://localhost:8080/项目名/list.action" 即可看到用户列表。可以点击 "Add New User" 按钮添加新用户,点击 "Edit" 按钮编辑用户信息,点击 "Delete" 按钮删除用户。
hibernate+stru2连接数据库并将jsp页面提交的文件保存到数据库中并且显示在jsp页面上
首先,你需要在项目中添加 Hibernate 和 Struts2 的依赖,并配置数据库连接信息。具体的步骤可以参考官方文档。
接下来,你需要创建一个实体类来映射数据库中的表结构,同时在实体类中添加一个 byte[] 类型的属性来存储文件。
然后,在 Struts2 的 Action 中,你可以通过 HttpServletRequest 的 getInputStream() 方法获取上传的文件流,将其转换为 byte[] 数组,并设置到实体类的属性中。最后,将实体类保存到数据库中即可。
在 JSP 页面上,你可以通过 Struts2 的标签库来显示文件列表,并提供上传文件的表单。具体的代码可以参考如下示例:
实体类:
```
@Entity
@Table(name = "file")
public class FileEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
private String name;
private byte[] content;
// getters and setters
}
```
Struts2 Action:
```
public class FileAction extends ActionSupport {
private List<FileEntity> files;
private FileEntity file;
private FileService fileService;
public String list() {
files = fileService.getAll();
return SUCCESS;
}
public String upload() throws Exception {
InputStream inputStream = new FileInputStream(file);
byte[] content = IOUtils.toByteArray(inputStream);
file.setContent(content);
fileService.save(file);
return SUCCESS;
}
// getters and setters
}
```
JSP 页面:
```
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>File upload example</title>
</head>
<body>
<h1>File upload example</h1>
<s:form action="upload" method="post" enctype="multipart/form-data">
<s:file name="file" label="Select file"/>
<s:submit value="Upload"/>
</s:form>
<hr/>
<h2>Uploaded files</h2>
<table>
<tr>
<th>Name</th>
<th>Action</th>
</tr>
<s:iterator value="files">
<tr>
<td><s:property value="name"/></td>
<td><a href="<s:url action='download'><s:param name='id' value='%{id}'/></s:url>">Download</a></td>
</tr>
</s:iterator>
</table>
</body>
</html>
```
以上代码仅供参考,具体的实现方式可能因应用场景和技术栈而有所不同。