我正在研究Struts。我有一个JSP登录页面,用户将通过该页面提交他的数据。之后,如果有人想要搜索他的数据,他必须输入他的id
号码。我希望动态输入id
。此id
no将传递给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>
答案 0 :(得分:0)
如果您对模型使用User
对象,但未使用模型驱动操作,那么要通过id
获取用户,您应该在请求中使用user.id
参数。您还应该为模型使用getter
public User getUser(){
return user;
}
调用操作时,它会将参数设置为用户对象。现在将其设置为查询中的参数
ps.setInt(1, user.getId()); //parameters are counted from 1..n
查看使用PreparedStatement
的详细信息。
您应该返回Action.SUCCESS
结果,并且无需为结果"success"
命名,因为它是默认名称。
return Action.SUCCESS;
如果您将用户ID作为参数传递,那么您不会在列表中获得多个对象,但是要在JSP中绑定列表,您可以使用iterator
标记
<s:iterator value="list">
ID: <s:property value="id"/><br>
Name: <s:property value="name"/><br>
Email: <s:property value="email"/><br>
</s:iterator>
属性应在User
对象中具有相应的getter。
加载类和打开连接(你忘了关闭)是不好的。要获取Connection
对象,您可以配置和使用数据源。请参阅示例How JSF is inegrated with JDBC和How to create MySQL database connection in web.xml
of Apache Tomcat using Struts 2。