JavaEEStruts2-组合框-数据库检索下拉列表中的元素
我的jsp文件是:JavaEEStruts2-组合框-数据库检索下拉列表中的元素,java,jakarta-ee,Java,Jakarta Ee,我的jsp文件是: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@page import="java.util.*" %> <%@ page import="com.elc.util.*" %> <%@taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="java.util.*" %>
<%@ page import="com.elc.util.*" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>Select Your Department</h1>
<s:form action="Comapny">
<table bordercolor="red">
<tr>
<td>Select your Option</td>
<td>
<s:combobox name ="Depart"list="%{depat}" value="Select" headerValue="-1"
headerKey="select your option"></s:combobox>
</td>
</tr>
<tr>
<td></td>
<td>
<s:submit value="Select"></s:submit>
</td>
</tr>
</table>
</s:form>
</body>
</html>
在此处插入标题
选择你的部门
选择您的选项
我的动作课是
package com.elc.action;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import com.opensymphony.xwork2.ActionSupport;
@SuppressWarnings("serial")
public class Department extends ActionSupport {
private String Dept;
private List<Object> depat;
public List<Object> getDepat() {
return depat;
}
public void setDepat(List<Object> depat) {
this.depat = depat;
}
public String getDept() {
return Dept;
}
public void setDept(String dept) {
Dept = dept;
}
//@SuppressWarnings("unchecked")
public String Select(){
Collection<String> o = DBConnection.getConnection();
depat = new ArrayList<Object>();
Iterator<String> i = o.iterator();
while(i.hasNext()){
depat.add(i);
}
System.out.println("the list contains..........."+depat);
return "success";
}
//@SuppressWarnings("static-access")
public String execute(){
return SUCCESS;
}
}
package com.elc.action;
导入java.util.ArrayList;
导入java.util.Collection;
导入java.util.Iterator;
导入java.util.List;
导入com.opensymphony.xwork2.ActionSupport;
@抑制警告(“串行”)
公共课部扩大行动支持{
私人弦乐部;
私人名单部门;
公共列表getDepat(){
返回depat;
}
公共无效设置域(列表域){
this.depat=depat;
}
公共字符串getDept(){
退货部;
}
公共作废设置部门(字符串部门){
部门=部门;
}
//@抑制警告(“未选中”)
公共字符串选择(){
集合o=DBConnection.getConnection();
depat=newarraylist();
迭代器i=o.Iterator();
while(i.hasNext()){
部门增加(i);
}
System.out.println(“列表包含…………”+depat);
返回“成功”;
}
//@抑制警告(“静态访问”)
公共字符串execute(){
回归成功;
}
}
我的刀课是
package com.elc.action;
import java.sql.*;
import java.util.ArrayList;
import java.util.Collection;
public class DBConnection {
public static Collection<String> getConnection(){
ArrayList<String> l = new ArrayList<String>();
try{
Class.forName(DBConstants.Driver);
Connection con = DriverManager.getConnection(DBConstants.url,
DBConstants.userName, DBConstants.password);
Statement st = con.createStatement();
String query = DBConstants.SELECT +"* from role";
ResultSet rs = st.executeQuery(query);
while(rs.next()){
rs.getInt(1);
String dept = rs.getString(2);
l.add(dept);
}
}catch(ClassNotFoundException c){
System.out.println("the classs u are asking not found");
c.printStackTrace();
}catch(SQLException s){
System.out.println("the sql exception is occured");
s.printStackTrace();
}
return l;
}
}
package com.elc.action;
导入java.sql.*;
导入java.util.ArrayList;
导入java.util.Collection;
公共类数据库连接{
公共静态集合getConnection(){
ArrayList l=新的ArrayList();
试一试{
Class.forName(DBConstants.Driver);
Connection con=DriverManager.getConnection(DBConstants.url,
DBConstants.userName、DBConstants.password);
语句st=con.createStatement();
字符串查询=DBConstants.SELECT+“*来自角色”;
结果集rs=st.executeQuery(查询);
while(rs.next()){
rs.getInt(1);
字符串dept=rs.getString(2);
l、 增加(部门);
}
}捕获(ClassNotFoundException c){
System.out.println(“未找到您所请求的类”);
c、 printStackTrace();
}捕获(SQLS异常){
System.out.println(“发生sql异常”);
s、 printStackTrace();
}
返回l;
}
}
首先,我在DBConnection.getconnection方法中使用了返回对象,它将我的表检索为[HR,Tester,Software Engineer],但当我在我的web中使用下拉列表时,它们是按原样出现的……即[HR,Tester,Software Engineer],因此我希望输出为该测试仪的第一个HR及其下的值,以及该软件工程师的下的值。当我在DBConnection.getconnection方法中使用Collection或List return时,我得到了jasper异常
有人能告诉我答案吗?…我的jsp没有任何错误,我更改了我的操作类,这只是我现在发布的内容。。剩下的程序是相同的
public class Department extends ActionSupport {
@SuppressWarnings("rawtypes")
ArrayList deptList;
@SuppressWarnings("rawtypes")
public ArrayList getDeptList() {
return deptList;
}
@SuppressWarnings("rawtypes")
public void setDeptList(ArrayList deptList) {
this.deptList = deptList;
}
public String Select(){
deptList = DBConnection.getConnection();
System.out.println("the list contains..........."+deptList);
return "checked";
}
public String execute(){
return SUCCESS;
}
}
首先,我创建了一个集合接口,并且没有该变量的getter和setter。。现在我创建了一个Arraylist,并且有了getter和setter,现在它工作正常了。…public class Mainlist{
public class Mainlist {
DBLayer db;
public Mainlist() {
db = new DBLayer();
}
public ArrayList getCategoryname() {
ArrayList<String> list = new ArrayList();
try {
String sql = "select category_name from category";
PreparedStatement ps = db.getConnection().prepareStatement(sql);
ResultSet rs = ps.executeQuery();
if (rs != null) {
while (rs.next()) {
list.add(rs.getString("category_name"));
// System.out.println(list);
}
}
return list;
} catch (Exception e) {
e.printStackTrace();
return list;
}
}
}
数据库层数据库;
公共Mainlist(){
db=新的DBLayer();
}
公共阵列列表getCategoryname(){
ArrayList=新建ArrayList();
试一试{
String sql=“从类别中选择类别名称”;
PreparedStatement ps=db.getConnection().prepareStatement(sql);
结果集rs=ps.executeQuery();
如果(rs!=null){
while(rs.next()){
添加(rs.getString(“类别名称”);
//系统输出打印项次(列表);
}
}
退货清单;
}捕获(例外e){
e、 printStackTrace();
退货清单;
}
}
}
您可以分享整个错误消息吗?它相当混乱。显示完整的JSP页面。我得到了答案。。。。。实际上,这是结构2的Action类中的getter和setter的关系以及方法的返回类型……然后你必须发布你的答案,如果你的答案是正确的,那么它将对其他人有帮助@阿卜杜勒·拉赫马尼认为这会帮助你们。