struts+spring+hibernate整合中出的问题

zxgngjie 2008-06-29 10:15:36
刚开始写整合 我先是把spring和hibernate整合在一起后,现在要把三个整合在一起,

下面struts-config.xml(有注释的段落,是我一开始做的,现在把hibernatetemplate的注入放进了action中,不知道该怎么样去写?但是我这样写后,就当我进入注册页面的时候,就会出错,org.apache.jasper.JasperException: Form bean not specified on mapping for action: "register",请教,谢谢!)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "struts-config_1_3.dtd" >
<struts-config>
<form-beans>
<form-bean name="loginForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
</form-bean>
<form-bean name="registerForm"
type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
<form-property name="email" type="java.lang.String" />
<form-property name="country" type="java.lang.String" />
<form-property name="city" type="java.lang.String" />
<form-property name="street" type="java.lang.String" />
</form-bean>
</form-beans>
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/register"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="rsuccess" path="/login.jsp" />
<forward name="rfail" path="/index.jsp" />
</action>

<!--login -->
<action path="/login" type="com.zj.action.LoginAction"
name="loginForm" scope="request" validate="true"
input="/register.jsp">
<forward name="success" path="/login.jsp" />
<forward name="fail" path="/register.jsp" />

</action>
<!--
<action path="/register" type="com.zj.action.RegisterAction"
name="registerForm" scope="request" validate="true"
input="/register.jsp">
<forward name="rsuccess" path="/login.jsp" />
<forward name="rfail" path="/index.jsp" />
</action>
-->
</action-mappings>
<message-resources
parameter="com.yourcompany.struts.ApplicationResources" />

<plug-in
className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation"
value="/WEB-INF/beans-config.xml" />
</plug-in>
</struts-config>

下面是beans-config文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://127.0.0.1:3306/zj</value>
</property>
<property name="username">
<value>zj</value>
</property>
<property name="password">
<value>zj</value>
</property>

</bean>

<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"
destroy-method="destroy">

<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/zj/domain/UserInfo.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>

</bean>

<!-- <bean id="userDao" class="com.zj.imple.DaoImple">
<property name="hibernateTemplate">
<ref bean="sessionFactory" />
</property>

</bean> -->
<bean name="/register" class="com.zj.action.RegisterAction">
<property name="hibernateTemplate">
<ref bean="sessionFactory" />
</property>
</bean>
</beans>
上面有注释掉的段落,
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxgngjie 2008-06-29
  • 打赏
  • 举报
回复
我现在在<action path="/register"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="rsuccess" path="/login.jsp" />
<forward name="rfail" path="/index.jsp" />
</action>

中加了name="registerForm"
和上面的form 对应起来了,为什么提交注册时会找不到页面,是不是在action中没有进行处理?

registeraction:

public class RegisterAction extends Action implements UserDao{
private HibernateTemplate hibernateTemplate;
public HibernateTemplate getHibernateTemplate() {
return hibernateTemplate;
}
public void setHibernateTemplate(SessionFactory sessionFactory) {
this.hibernateTemplate = new HibernateTemplate(sessionFactory);
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
DynaActionForm actionForm =(DynaActionForm) form;
UserInfo user = new UserInfo();
user.setUsername((String) actionForm.get("username"));
user.setPassword((String)actionForm.get("password"));
user.setEmail((String)actionForm.get("email"));
user.setCountry((String)actionForm.get("country"));
user.setCity((String)actionForm.get("city"));
user.setStreet((String)actionForm.get("street"));

System.out.println(user.getUsername());
System.out.println("***");
ApplicationContext context = new FileSystemXmlApplicationContext(
"beans-config.xml");
//插入新的用户信息
if(create(user)) {

return mapping.findForward("rsuccess");
} else {
request.setAttribute("warning", "信息错误,请重新输入!");
return mapping.findForward("rfail");
}

}
请问applicationContext在这里写,是不是不应该写到action中?
什么都不能 2008-06-29
  • 打赏
  • 举报
回复
<action path="/register" name="registerForm" scope="request"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="rsuccess" path="/login.jsp" />
<forward name="rfail" path="/index.jsp" />
</action>
Shine_Panda 2008-06-29
  • 打赏
  • 举报
回复
你把 <!--
<action path="/register"
这个 action 注释了
对应的
<form-bean name="registerForm"

也要注释。
zhj92lxs 2008-06-29
  • 打赏
  • 举报
回复
<action path="/register"
type="org.springframework.web.struts.DelegatingActionProxy">
<forward name="rsuccess" path="/login.jsp" />
<forward name="rfail" path="/index.jsp" />
</action>
这段你用了form吗

67,538

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧