关于struts+hibernate提交数据的问题

海蓝树 2008-06-21 09:32:00
有段程序不太明白,每次我把加粗的部分,换成 "request.setAttribute("msg", "<font color=red>"+username+"</font>"+" 注册成功!");"的时候,数据的无法提交了,而且数据返回的页面也是一片空白,返回页面中使用了<bean:write name="msg" />不知道是为什么,请各位指教!!!

action.java:
package com.yourcompany.struts.action;

import java.io.Serializable;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.hibernate.Session;
import org.hibernate.Transaction;


import com.mine.hiber.Login;
import com.mine.hiber.SessionFactory;
import com.yourcompany.struts.form.LoginForm;

public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
String username=loginForm.getUsername();
String password=loginForm.getSss();
Session session =SessionFactory.getSession();
Login user=new Login(username,password);
session.save(user);
Transaction tx=null;
tx=session.beginTransaction();

tx.commit();
session.close();
HttpSession sessions = request.getSession();
sessions.setAttribute("msg", "<font color=red>"+username+"</font>"+" 注册成功!");
return mapping.findForward("su");
}
}



struts.config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">

<struts-config>
<data-sources />
<form-beans >
<form-bean name="loginForm" type="com.yourcompany.struts.form.LoginForm" />

</form-beans>

<global-exceptions />

<global-forwards >
<forward name="su" path="/index.jsp" redirect="true"/>

</global-forwards>

<action-mappings >
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" />
<action
path="/loadmy"
type="com.yourcompany.struts.action.LoadmyAction"
validate="false" >
<forward name="mysu" path="/my.jsp" redirect="true"/>
</action>


</action-mappings>

<message-resources parameter="com.yourcompany.struts.ApplicationResources" />
</struts-config>

...全文
168 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
i_saw_you 2008-06-21
  • 打赏
  • 举报
回复
<action
attribute="loginForm"
input="/login.jsp"
name="loginForm"
path="/login"
scope="request"
type="com.yourcompany.struts.action.LoginAction" />
红色的改成 scope="session"试试。
butnet 2008-06-21
  • 打赏
  • 举报
回复
Transaction tx=null;
tx=session.beginTransaction();
Login user=new Login(username,password);
session.save(user);
tx.commit();


<forward name="su" path="/index.jsp" redirect="true"/> redirect="true" 这样客户端会重新请求,页面会在两个不同的request中执行,所以你request.setA....这个不起作用.

去掉 redirect="true"

海蓝树 2008-06-21
  • 打赏
  • 举报
回复
有高手吗,就解决不了了吗!!!
海蓝树 2008-06-21
  • 打赏
  • 举报
回复
我想知道的是为什么,连提交的数据都无法进入数据库,提交数据可是在request.setAttribute("msg", " <font color=red>"+username+" </font>"+" 注册成功!"); 之前啊!
zhj92lxs 2008-06-21
  • 打赏
  • 举报
回复
<forward name="su" path="/index.jsp" redirect="true"/>

redirect="true"写上这个采用的是sendRedirect来跳转的,request范围的数据全部丢失,所以你得不到值
zidasine 2008-06-21
  • 打赏
  • 举报
回复
<global-forwards >
<forward name="su" path="/index.jsp"/>

</global-forwards>
改下看看
海蓝树 2008-06-21
  • 打赏
  • 举报
回复
sessions.setAttribute("msg", " <font color=red>"+username+" </font>"+" 注册成功!"); 换成了request.setAttribute("msg", " <font color=red>"+username+" </font>"+" 注册成功!");
xdjzxy 2008-06-21
  • 打赏
  • 举报
回复
如何redirect了就用Httpsession 没有就用request,两者不能混用!
海蓝树 2008-06-21
  • 打赏
  • 举报
回复
到底有没有会啊,,,,真败了!!

62,610

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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