本帖最后由 myApps 于 2016-3-18 13:49 编辑
视图使用连表查询sql,请见截图。
后台打印出该sql在sqlserver中可以查到对应的结果,但是在点击视图查询时,前台报错null,后台报错
java.lang.NullPointerException
at cn.myapps.core.dynaform.view.html.ViewHtmlBean.toHTMLText(ViewHtmlBean.java:994)
at org.apache.jsp.portal.dwz.dynaform.view.listView_jsp._jspService(listView_jsp.java:1433)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:164)
at cn.myapps.base.web.ServletResult.OBPMServletDispatcherResult.doExecute(OBPMServletDispatcherResult.java:34)
at org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)
at com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:371)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:275)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
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:246)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:239)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:191)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:73)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:91)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:252)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
附sql代码:
var sql="";
var month=getItemValueAsString("考勤月");
var type=getItemValueAsString("请假种类");
var dep=getItemValueAsString("部门");
sql="SELECT ";
sql=sql+" b.DOMAINID as DOMAINID,a.[item_考勤月度] as item_考勤月度,b.[ITEM_请假人] as item_姓名, b.[ITEM_员工编号] as ITEM_员工编号, b.[ITEM_职务] as item_职务, b.[ITEM_用工形式] as item_用工形式, b.[ITEM_所属部门] as item_所属部门, b.[ITEM_请假种类] as item_请假种类, b.statelabel as item_假单状态,";
sql=sql+" b.[ITEM_开始时间] as item_请假开始时间,b.[ITEM_结束时间] as item_请假结束时间,b.[ITEM_申请单号] as item_假单编号,";
sql=sql+" sum (CASE WHEN ( a.[item_是否工作日] = 'true') THEN 1 ELSE 0 END) AS item_扣除工资天数,COUNT (a.[ITEM_请假单号]) AS item_实际天数 ";
sql=sql+" FROM weiguanjia.dbo.tlk_请假明细 a,weiguanjia.dbo.[TLK_请假表单] b ";
sql=sql+" WHERE a.ITEM_请假单号 = b.ITEM_申请单号 AND b.statelabel != '终止' ";
if (month!=null && month.trim().length() > 0){
sql = sql+" and a.ITEM_考勤月度='"+month+"'";
}
if (type!=null && type.trim().length() > 0){
sql = sql+" and b.ITEM_请假种类='"+type+"'";
}
if (dep!=null && dep.trim().length() > 0){
sql = sql+" and b.ITEM_所属部门='"+dep+"'";
}
sql=sql+" GROUP BY b.[ITEM_请假人],b.[ITEM_员工编号],b.[ITEM_职务],b.[ITEM_用工形式],b.[ITEM_所属部门],b.[ITEM_请假种类],b.statelabel,b.[ITEM_开始时间],b.[ITEM_结束时间],b.[ITEM_申请单号],a.[item_考勤月度],b.DOMAINID";
sql=sql+" order by b.[ITEM_所属部门],b.[ITEM_请假人],b.[ITEM_请假种类],b.[ITEM_开始时间]";
println("=====sql:"+sql);
sql; |