说明一下,我用webwork开发的,我写一个Tag类。要传一个Useres实体的属性。第,我在使用这个标签是<user:toolTag user="#session[user]"/>它就暴了这一个错。我怎么样将当session中的user为null时,不暴错呢?要是数据类型转不了。
如果用${user}这个更气,就是用了tomcat5.5就暴这个错,用了tomcat6.0就没有错。哎。。。。。
标签代码如下。
- Java code
package com.gz.koal.sys.tag;import java.io.IOException;import javax.servlet.jsp.JspWriter;import javax.servlet.jsp.tagext.TagSupport;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import com.gz.koal.model.Useres;import com.opensymphony.xwork.DefaultActionInvocation;/** * 工具栏标签 * @author Administrator * */public class ToolTag extends TagSupport { private static final long serialVersionUID = 1L; private static final Log LOG = LogFactory.getLog(DefaultActionInvocation.class); private Useres user=null; public static long getSerialVersionUID() { return serialVersionUID; } public Useres getUser() { return user; } public void setUser(Useres user) { this.user = user; } public int doStartTag() { JspWriter out=this.pageContext.getOut(); try { out.println("<div align='right' style='background: #dfdddd'>"); if(user==null) { out.println("<a href='/webwork/jsp/login.jsp' target='_parent'>[登录]</a> "); out.println("<a href='/webwork/jsp/register.jsp' target='_parent'>[注册]</a> "); }else { out.println("<a href='/webwork/jsp/control.jsp' target='_parent'>["+user.getUserName()+"]设置</a>"); out.println("<a href='/webwork/user!undo.action'>[注销]</a> "); } out.println("<a href='/webwork/jsp/index.jsp' target='_parent'>[返回主页]</a>"); out.println("</div><br/>"); } catch (IOException e) { LOG.error("标签文件发生IO流异常"+e.getMessage()); }catch(Exception e) { LOG.error("标签文件发生未知异常"+e.getMessage()); } return SKIP_BODY; } }
2008-12-26 10:48:41 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to convert string "#session['user']" to class "com.gz.koal.model.Useres" for attribute "user": Property Editor not registered with the PropertyEditorManager
at org.apache.jasper.runtime.JspRuntimeLibrary.getValueFromPropertyEditorManager(JspRuntimeLibrary.java:887)
at org.apache.jsp.jsp.index_jsp._jspx_meth_user_005ftoolTag_005f0(index_jsp.java:101)
at org.apache.jsp.jsp.index_jsp._jspService(index_jsp.java:70)
------解决方案--------------------
com.gz.koal.model.Useres 这里面有user属性吗 ??
还是session中没这个属性 ?还是没SET GET方法