Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaEEStruts2-组合框-数据库检索下拉列表中的元素_Java_Jakarta Ee - Fatal编程技术网

JavaEEStruts2-组合框-数据库检索下拉列表中的元素

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

我的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 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的关系以及方法的返回类型……然后你必须发布你的答案,如果你的答案是正确的,那么它将对其他人有帮助@阿卜杜勒·拉赫马尼认为这会帮助你们。