2012-12-14 69 views
1

我要實現我的應用程序分頁...使用分頁顯示標籤在Struts2

我得到對象的數組列表從我的數據庫和目錄名爲detailsList

現在我要展示detailsList分頁在我的jsp頁面。 這是我的動作班。

public class ViewTestCasesAction extends ActionSupport implements SessionAware { 


private static final long serialVersionUID = -5142928518089123340L; 

private String moduleSelected; 



private List<TestCaseDetailsBean> detailsList = new ArrayList<TestCaseDetailsBean> (); 



private Map<String, Object> session; 


public String execute() { 

    detailsList = dbFunction.fetchdetails(moduleSelected); 
    session.put("detailsList", detailsList); 


    if (detailsList.size() > 0) { 

     return SUCCESS; 
    } 
    return ERROR; 
} 

public Map<String, Object> getSession() { 
    return session; 
} 
public void setSession(Map<String, Object> session) { 
    this.session = session; 
} 

現在使用display標記來顯示這項detailsList,步驟必須我拿?我知道有很多關於此的帖子,但我不知道如何得到它。我正在使用struts2框架並在前端使用jsp。我嘗試使用display標籤,但我沒有成功。我認爲設置將在struts-configweb.xml之間進行。

我在此處使用會話,將此列表放在會話範圍中,以便我可以在jsp中顯示。請幫助我獲取顯示標籤中的值。只需幫助我完成此過程。

我嘗試了,但得到了同樣的錯誤的方式...

我改變了我的web.xml的..

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" 
id="WebApp_ID" version="3.0"> 

<display-name>Struts 2</display-name> 
<welcome-file-list> 
<welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 
<filter> 
    <filter-name>struts2</filter-name> 
    <filter-class> 
    org.apache.struts2.dispatcher.FilterDispatcher 
    </filter-class> 
</filter> 

<filter-mapping> 
    <filter-name>struts2</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 

<jsp-config> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri> 
     <taglib-location>/WEB-INF/struts-bean.tld</taglib-location> 
    </taglib> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri> 
     <taglib-location>/WEB-INF/struts-html.tld</taglib-location> 
    </taglib> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri> 
     <taglib-location>/WEB-INF/struts-logic.tld</taglib-location> 
    </taglib> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-nested.tld</taglib-uri> 
     <taglib-location>/WEB-INF/struts-nested.tld</taglib-location> 
    </taglib> 
    <taglib> 
     <taglib-uri>/WEB-INF/struts-tiles.tld</taglib-uri> 
     <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location> 
    </taglib> 
    </jsp-config> 

<servlet> 
<servlet-name>action</servlet-name> 
<servlet-class> 
org.apache.struts.action.ActionServlet 
</servlet-class> 
<init-param> 
<param-name>config</param-name> 
<param-value>/WEB-INF/struts-config.xml</param-value> 
</init-param> 
<init-param> 
<param-name>debug</param-name> 
<param-value>2</param-value> 
</init-param> 
<init-param> 
<param-name>detail</param-name> 
<param-value>2</param-value> 
</init-param> 
<load-on-startup>2</load-on-startup> 
</servlet> 
<servlet-mapping> 
<servlet-name>action</servlet-name> 
<url-pattern>*.do</url-pattern> 
</servlet-mapping> 
<session-config> 
<session-timeout>30</session-timeout> 
</session-config> 
</web-app> 

而且我已經創建了一個行動的形式也爲每博客裏面is

package com.harmony.cloud.action;

import java.util.ArrayList; 

import com.harmony.cloud.bean.TestCaseDetailsBean; 
import com.opensymphony.xwork2.ActionSupport; 

public class ViewTestCasesForm extends ActionSupport { 

private ArrayList<TestCaseDetailsBean> detailsBeans; 

public ArrayList<TestCaseDetailsBean> getDetailsBeans() { 
    return detailsBeans; 
} 

public void setDetailsBeans(ArrayList<TestCaseDetailsBean> detailsBeans) { 
    this.detailsBeans = detailsBeans; 
} 



} 

而且struts-config.xml中

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE struts-config PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" 
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> 

<struts-config> 
<form-beans> 
<form-bean name="ViewTestCasesForm" 
type="com.harmony.cloud.action.ViewTestCasesForm"/> 
</form-beans> 

<action-mappings> 
<action input="/" name="ViewTestCasesForm" path="/viewAction.do" 
scope="session" type="com.harmony.cloud.action.ViewTestCasesAction"> 
<forward name="success" path="/home.jsp" /> 
</action> 
</action-mappings> 
</struts-config> 

我的JSP看起來像這樣...

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 
<%@ page import="java.util.*" %> 
<%@ page import="com.harmony.cloud.bean.TestCaseDetailsBean" %> 
<%@ page import="com.harmony.cloud.action.ViewTestCasesAction" %> 

<%@ page import="java.sql.*" %> 

<%@taglib uri="/struts-tags" prefix="s"%> 
<%@ taglib uri="http://displaytag.sf.net" prefix="display" %> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Test Cases List</title> 
</head> 
<body> 
<display:table export="true" id="data" 
name="sessionScope.ViewTestCasesForm.detailsBeans" 
requestURI="/viewAction.do" pagesize="3"> 

</display:table> 


</body> 
</html> 

當我執行我收到以下錯誤....... 。

java.lang.ClassNotFoundException: org.apache.commons.lang.UnhandledException 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
at java.lang.Class.getConstructor0(Unknown Source) 
at java.lang.Class.newInstance0(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at com.sun.beans.finder.InstanceFinder.instantiate(Unknown Source) 
at com.sun.beans.finder.InstanceFinder.find(Unknown Source) 
at java.beans.Introspector.findExplicitBeanInfo(Unknown Source) 
at java.beans.Introspector.<init>(Unknown Source) 
at java.beans.Introspector.getBeanInfo(Unknown Source) 
at org.apache.jasper.compiler.Generator$TagHandlerInfo.<init>(Generator.java:3944) 
at org.apache.jasper.compiler.Generator$GenerateVisitor.getTagHandlerInfo(Generator.java:2209) 
at org.apache.jasper.compiler.Generator$GenerateVisitor.visit(Generator.java:1640) 
at org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1539) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) 
at org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2428) 
at org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2434) 
at org.apache.jasper.compiler.Node$Root.accept(Node.java:475) 
at org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2376) 
at org.apache.jasper.compiler.Generator.generate(Generator.java:3490) 
at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:250) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) 
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) 
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646) 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:749) 
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:487) 
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:412) 
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:339) 
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164) 
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186) 
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:374) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278) 
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) 
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:236) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:90) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:145) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:171) 
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:192) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) 
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 
at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:54) 
at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:511) 
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:432) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 
+1

向我們展示您的嘗試。並且不要使用會話來存儲應該存儲在請求中的對象。 –

+0

<%session.getAttribute(「detailsList」); %> user1901079

+0

我必須在web.xml中添加任何內容 – user1901079

回答

0
  1. 在您的項目中包含displaytag庫。 How?
  2. 傳遞請求中的參數。你有兩個選擇,但最簡單的是用吸氣劑創建一個屬性private List<ListDetailsBean> detailsList

    public TestAction extends ActionSupport { 
        ... 
        private List<ListDetailsBean> detailsList; 
        ... 
        public List<ListDetailsBean> getDetailsList() {...}; 
        ... 
        public String execute() { 
         ... 
         detailsList = whatever(); 
         ... 
        } 
        ... 
    
    } 
    
  3. 最後,在jsp中使用顯示標記,並在其中顯示屬性。 How?

+0

Thanks for the reply..I have already添加了所有的罐子......你能告訴我這個過程嗎,或者如果你能爲我提供jsp的代碼片段,我需要在web.xml中做些什麼嗎? – user1901079

+0

@ user1901079:這不是它在這裏的工作原理。告訴我們你試過了什麼,解釋我們什麼不行,我們會幫助你。 –

+1

@ user1901079 *如果您可以提供我的代碼片段... * **您可以點擊我在答案中提供的鏈接嗎?**您的評論意味着您沒有試圖取得某些成果,您只是在等待有人會爲你解決它。 – Pigueiras