代碼又看不懂了,各位幫幫忙。我是新手


我下載了這樣一個例子,並學習他做一個查詢並顯示列表
不過很多地方不明白,希望各位指教

-------------華麗的分割線----------------------

第一部分是servlet  :SelectServlet

    public void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException
    {
        DataBean db = new DataBean();
        String selectValue="";
        if (request.getParameter("selectValue") != null)
        {
            selectValue = request.getParameter("selectValue");

            int page;
            if (request.getParameter("page") != null)
            {
                page = Integer.parseInt(request.getParameter("page"));
            }
            else
            {
                page = 1;
            }
            if (request.getParameter("action") != null)
            {
                if (request.getParameter("action").equals("frist"))
                {
                    page = 1;
                }
                else if (request.getParameter("action").equals("last"))
                {
                    page = db.PAGECOUNT;
                }
                else if (request.getParameter("action").equals("back"))
                {
                    page -= 1;
                }
                else if (request.getParameter("action").equals("frist"))
                {
                    page += 1;
                }

            }
           ArrayList list = db.selectCDBean(selectValue, page, 10);
           request.getSession().removeAttribute("selectList");
           request.getSession().setAttribute("selectList",list);
            int pagecount=db.PAGECOUNT;
            request.setAttribute("selectValue",selectValue);
            request.setAttribute("page",page);
            request.setAttribute("pagecount",pagecount);

        }
        RequestDispatcher rd=request.getRequestDispatcher("select.jsp?select="+selectValue);
        rd.forward(request,response);

    }

----------------還是華麗的分割線----------------------

第二部分是Bean:  DataBean

    public ArrayList selectCDBean(String selectValue, int page, int count) //查詢分頁
    {
        ArrayList list = new ArrayList();
        if (!checkParameter(selectValue))
        {
            selectValue = "";
        }
        try
        {
            proc = conn.prepareCall("{call proc_page(?,?,?,?)}");
            proc.setInt(1, page);
            proc.setInt(2, count);
            proc.setString(3, selectValue);
            proc.registerOutParameter(4, Types.INTEGER); //OUTPUT參數 返回結構共多少頁
            res = proc.executeQuery(); //接收存儲過程的結果集
            while (res.next()) //提取結果集的每條記錄
            {
                CDBean cb = new CDBean();
                cb.setCdAlbum(res.getString("CDalbum"));
                cb.setCdCompany(res.getString("CDcompany"));
                cb.setCdName(res.getString("CDname"));
                cb.setCdId(res.getLong("CDid"));
                cb.setCdType(getCDType(res.getInt("CDtypeId")));
                list.add(cb);
            }
            PAGECOUNT = proc.getInt(4);
        }
        catch (SQLException ex)
        {
            ex.printStackTrace();
        }
        return list;

    }

-----------------又是華麗的分割線---------------

之后我按照他的方法自己做了個類似的

servlet:

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException 
{
int parentid;
if (request.getParameter("parentid")==null)
{
parentid=0;
}
else
{
parentid=Integer.parseInt(request.getParameter("parentid"));
ClassManageBean mb = new ClassManageBean();
ArrayList list = mb.classList(parentid);
request.getSession().setAttribute("classname", list);
}

response.sendRedirect("admin/classManage.jsp");
}

bean:

public ArrayList classList(int parentid)
{
conn= new DBConn().getConn();
ArrayList list = new ArrayList();
String sql = "select * from news_type where parentid=? order by classid";
try
{
prepar = conn.prepareStatement(sql);
            prepar.setInt(1, parentid);
            res = prepar.executeQuery();
            while (res.next())
            {
             News_Type nt = new News_Type();
             nt.setClassid(res.getInt("classid"));
             nt.setClassname(res.getString("classname"));
             nt.setDepth(res.getInt("Depth"));
             nt.setParentid(res.getInt("parentid"));
             nt.setType(res.getString("Type"));
             list.add(nt);
            }
}
catch(SQLException ex)
{
ex.printStackTrace();
}
return list;

}
}

---------------這是最關鍵的最華麗的分割線--------------------
現在是問題了,例子是用jstl做的,我還不會,請問如何在頁面把這個list的值用列表表現出來
我是第一次做項目,問題很初級不要笑我

8 个解决方案

#1


你的list用session或者用,request.Attribute("name")傳到JSP
jsp上可以用
<%
ArrayList list = (ArrayList)request.getAttribute("name");
for(int i=0;i<list.size();i++){
CDBean   cb   =   new   CDBean(); 
cb=(CDBean)list.get(i);
%>
<tr>
<td>
<%=cb.get****%>//這里是你的BEAN里面的GET方法,你要使用這個BEAN可能要在JSP的頭文件上加相應的IMPORT
</td>
</tr>
<%
}
%>
這是大概,如果你會用標簽的話可能更快,不用這么復雜,JSTL不會,

#2


謝謝了,我試試。

#3


為什么不用jstl?jstl比較方便的啊,
一個<c:forEach>就搞定了整個的循環.
例:
<c:forEach var="p" items="${requestScope.你寫到request中的list的集合}" varStatus="status">
${p.屬性}
</c:forEach>
百度下c:forEach就知道了,挺方便的.

#4


我就是不會啊!還沒學過jstl

一會兒我也試試

另外剛才CDBean       cb       =       new       CDBean();   這一段好像不能直接用

還要 用<jsp:useBean>加入bean嗎?

#5


CDBean cb=new CDBean();
要先導入你用的這個包,
就和java中要import一樣.要不你就寫個CDBean,他能知道CDBean是誰.- -#

#6


把你的CDBean import到jsp的頭里面 <%@page import="..."%>

#7


為什么我取出的list是個空值啊?
開始數據庫為空,我加了數據還是空。

執行后出錯的顯示:
type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Unable to compile class for JSP: 
JSP FileName:null
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/school//org/apache/jsp/admin\classManage_jsp.java


An error occurred at line: 171 in the generated java file
Syntax error, insert "}" to complete Block
JSP FileName:null
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/school//org/apache/jsp/admin\classManage_jsp.java


An error occurred at line: 171 in the generated java file
Syntax error, insert "while ( Expression ) ;" to complete BlockStatements
JSP FileName:/admin/classManage.jsp
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/school//org/apache/jsp/admin\classManage_jsp.java

An error occurred at line: 94 in the jsp file: /admin/classManage.jsp
Syntax error, insert "Finally" to complete TryStatement
91: 
92:  </div>
93:  <!-- </c:forEach>  --> 
94:  <%} %>
95: 
96: <table width="96%" border="0" align="center" cellpadding="3" cellspacing="1" class="tableborder">
97:   <tr>

JSP FileName:null
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/school//org/apache/jsp/admin\classManage_jsp.java


An error occurred at line: 240 in the generated java file
Syntax error on tokens, delete these tokens
JSP FileName:null
Java FileName:/C:/Program Files/Apache Software Foundation/Tomcat 5.5/work/Catalina/localhost/school//org/apache/jsp/admin\classManage_jsp.java


An error occurred at line: 247 in the generated java file
Syntax error on token "finally", delete this token

Stacktrace:
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:98)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.25 logs.

#8


用jstl的標簽不報錯不過什么也沒顯示,是不是list傳值就沒傳過來?

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com