我在Struts工作。我有一个JSP登录页面,通过它用户将提交他的数据。之后,如果有人想搜索他的数据,他必须输入他的id
。我希望这个id
是动态输入。
这个id
会传递给一个Java页面。我用的是JDBC。如何写查询和设置字符串的函数?
以下是我的Java代码:
// package com.javatpoint;
import java.sql.*;
import java.util.ArrayList;
public class Display {
ArrayList<User> list=new ArrayList<User>();
User user= new User();
public ArrayList<User> getList() {
return list;
}
public void setList(ArrayList<User> list) {
this.list = list;
}
public String execute(){
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con=DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test","root","Ericsson@123");
PreparedStatement ps=con.prepareStatement("select * from STRUTSUSER where id=?");
ps.setInt(0,user.getId());
ResultSet rs=ps.executeQuery();
while(rs.next()){
User user=new User();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setPassword(rs.getString(3));
user.setEmail(rs.getString(4));
list.add(user);
}
}catch(Exception e){e.printStackTrace();}
return "succes";
}
}
字符串
struts.xml
:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD
Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="anbc" namespace="/" extends="struts-default">
<action name="display" class="com.javatpoint.Display">
<result name="success">display.jsp</result>
</action>
</package>
<package name="abc" namespace="/" extends="struts-default">
<action name="login" class="com.javatpoint.Register">
<result name="success">welcome.jsp</result>
</action>
</package>
</struts>
型
1条答案
按热度按时间fruv7luv1#
如果您使用
User
对象作为模型,但不使用模型驱动操作,那么要通过id
获取user,您应该在请求中使用user.id
参数。字符串
当动作被调用时,它会将参数设置为用户对象。
型
查看使用
PreparedStatement
的详细信息。您应该返回
Action.SUCCESS
结果,并且不需要将结果命名为"success"
,因为它是默认名称。型
如果您将用户id作为参数传递,则列表中不会有多个对象,但要在JSP中绑定列表,可以使用
iterator
标记型
属性应该在
User
对象中有相应的getter。加载类和打开连接(你忘记关闭)是不好的。要获取
Connection
对象,你可以配置和使用数据源。参见示例How JSF is inegrated with JDBC和How to create MySQL database connection inweb.xml
of Apache Tomcat using Struts 2。