|
郁闷的,调的二天的。
JSP页面
<table border="1">
<tr>
<td width="120" class="tdtitle">标题</td>
<td width="60" class="tdtitle">发布人</td>
<td width="250" class="tdtitle">内容</td>
<td width="80" class="tdtitle">操作</td>
</tr>
<%
List msgs=(List)request.getAttribute("msgs");
for(int i=0;i<msgs.size();i++)
{
Message msg=(Message)msgs.get(i);
%>
<tr>
<td><%=msg.getTitle()%></td>
<td><%=msg.getUserinfo().getName()%></td> //执行到这出错 !!注:Message中有一个Userinfo 属性对象
<td><%=msg.getContent()%></td>
<td>
修改
</td>
</tr>
<%
}
%>
</table>
Action 文件
public ActionForward loginin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
Userinfo u=getUserService().getUser("name", loginForm.getName());
if (u==null)
{
System.out.println("用户不存在!");
return mapping.getInputForward();
}
if(!u.getPassword().equals(loginForm.getPassword()))
{
System.out.println("密码错误!");
return mapping.getInputForward();
}
List msgs=getMessageService().getMessages(); //得到所有留言信息
request.setAttribute("msgs", msgs);
return mapping.findForward("messagelist");
}
applicationContext.xml 文件
<bean id="UserService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
<property name="transactionManager">
<ref local="myTransactionManager"/>
</property>
<property name="target">
<ref local="UserTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">
PROPAGATION_REQUIRED
</prop>
<prop key="get*">
PROPAGATION_REQUIRED
</prop>
</props>
</property>
</bean>
<bean id="UserTarget"
class="org.message.service.impl.UserDAOServiceImpl" abstract="false"
singleton="true" lazy-init="default" autowire="default"
dependency-check="default">
<property name="userDAO">
<ref local="UserDAO"/>
</property>
</bean>
<bean id="UserDAO" class="org.message.dao.impl.UserDAOImpl"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<bean id="MessageService"
class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
<property name="transactionManager">
<ref local="myTransactionManager"/>
</property>
<property name="target">
<ref local="MessageTarget"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="save*">
PROPAGATION_REQUIRED
</prop>
<prop key="get*">
PROPAGATION_REQUIRED,readOnly
</prop>
<prop key="update*">
PROPAGATION_REQUIRED
</prop>
<prop key="delete*">
PROPAGATION_REQUIRED
</prop>
</props>
</property>
</bean>
<bean id="MessageTarget"
class="org.message.service.impl.MessageDAOServiceImpl"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
<property name="messageDAO">
<ref local="MessageDAO"/>
</property>
</bean>
<bean id="MessageDAO" class="org.message.dao.impl.MessageDAOImpl"
abstract="false" singleton="true" lazy-init="default"
autowire="default" dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
Message.hbm.xml 文件
<hibernate-mapping>
<class name="org.message.model.Message" table="MESSAGE" >
<id name="id" type="java.lang.String">
<column name="ID" length="32" />
<generator class="uuid.hex" />
</id>
<many-to-one name="userinfo" class="org.message.model.Userinfo" fetch="select" lazy="false">
<column name="USER_ID" length="32" />
</many-to-one>
<property name="title" type="java.lang.String">
<column name="TITLE" length="32" not-null="true" />
</property>
<property name="content" type="java.lang.String">
<column name="CONTENT" length="2000" />
</property>
</class>
</hibernate-mapping>
Userinfo.hbm.xml 文件
<hibernate-mapping>
<class name="org.message.model.Userinfo" table="USERINFO" >
<id name="id" type="java.lang.String">
<column name="ID" length="32" />
<generator class="uuid.hex" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="32" not-null="true" unique="true" />
</property>
<property name="password" type="java.lang.String">
<column name="PASSWORD" length="32" not-null="true" />
</property>
<set name="messages" inverse="true" lazy="false" cascade="save-update">
<key>
<column name="USER_ID" length="32" />
</key>
<one-to-many class="org.message.model.Message" />
</set>
</class>
</hibernate-mapping>
出错如下
org.apache.jasper.JasperException
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
java.lang.NullPointerException
org.apache.jsp.messagelist_jsp._jspService(messagelist_jsp.java:82)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063)
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) |
|