解决方案 »

  1.   

    然后是最后一个ACTION 
    package DBJavaBean;import JavaBean.UserNameBean;
    import JavaBean.MyDayBean;
    import JavaBean.MyFileBean;
    import JavaBean.MyFriBean;
    import JavaBean.MyMessBean;
    import java.sql.*;
    import java.util.ArrayList;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.swing.JOptionPane;
    import org.apache.struts2.interceptor.ServletRequestAware;//实现ServletRequestAware 通过IoC方式直接访问Servlet,并通过 request获取 session对象
    public class DB implements ServletRequestAware{
        private String driverName="com.mysql.jdbc.Driver";
        private String url="jdbc:mysql://localhost:3306/gbk?useUnicode=true&characterEncoding=gbk";
        private String user="root";
        private String password="root";
        private Connection con=null;
        private Statement st=null;
        private ResultSet rs=null;
        private HttpServletRequest request ;
        public DB(){
        }
       public String getDriverName() {
            return driverName;
        }
        public void setDriverName(String driverName) {
            this.driverName = driverName;
        }
        public String getUrl() {
            return url;
        }
        public void setUrl(String url) {
            this.url = url;
        }
        public String getUser() {
            return user;
        }
        public void setUser(String user) {
            this.user = user;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public void setServletRequest(HttpServletRequest hsr) {
            request=hsr;
        }
        //完成连接数据库操作,并生成容器返回
        public Statement getStatement(){
            try{
                Class.forName(getDriverName());
                con=DriverManager.getConnection(getUrl(), getUser(), getPassword());
                return con.createStatement();
            }catch(Exception e){
                e.printStackTrace();
                return null;
            }
        }
       //完成注册,把用户的注册信息录入到数据库中
      public String insertMess(HttpServletRequest request,String userName,String password,String name,String sex,String birth,String nation,String edu,String work,String phone,String place,String email){
            try{
                String sure=null;
                rs=selectMess(request,userName);
                //判断是否用户名已存在,如果存在返回one
                if(rs.next()){
                   sure="one";
                    
                     
                }else{
                    String sql="insert into user"+"(userName,password,name,sex,birth,nation,edu,work,phone,place,email)"+"values("+"'"+userName+"'"+","+"'"+password+"'"+","+"'"+name+"'"+","+"'"+sex+"'"+","+"'"+birth+"'"+","+"'"+nation+"'"+","+"'"+edu+"'"+","+"'"+work+"'"+","+"'"+phone+"'"+","+"'"+place+"'"+","+"'"+email+"'"+")";
                    st=getStatement();
                    int row=st.executeUpdate(sql);
                    if(row==1){
                        //调用,myMessage方法,更新session中保存的用户信息
                        String mess=myMessage(request,userName);
                        if(mess.equals("ok")){
                            sure="ok";
                        }else{
                            sure=null;
                        }
                    }else{
                        sure=null;
                    }
                    
                }
                return sure;
            }catch(Exception e){
                e.printStackTrace();
                return null;
            }
        }
        //更新注册的个人信息
        public String updateMess(HttpServletRequest request,String userName,String name,String sex,String birth,String nation,String edu,String work,String phone,String place,String email){
            try{
                String sure=null;
                String sql="update user set name='"+name+"',sex='"+sex+"',birth='"+birth+"',nation='"+nation+"',edu='"+edu+"',work='"+work+"',phone='"+phone+"',place='"+place+"',email='"+email+"' where userName='"+userName+"'";
                st=getStatement();
                int row=st.executeUpdate(sql);
                if(row==1){
                    //调用,myMessage方法,更新session中保存的用户信息
                    String mess=myMessage(request,userName);
                    if(mess.equals("ok")){
                        sure="ok";
                    }else{
                        sure=null;
                    }
                }else{
                    sure=null;
                }
                return sure;
            }catch(Exception e){
                e.printStackTrace();
                return null;
            }
        }
        //查询个人信息,并返回 rs
        public ResultSet selectMess(HttpServletRequest request,String userName){
            try{
                String sql="select * from user where userName='"+userName+"'";
                st=getStatement();
                return st.executeQuery(sql);
            }catch(Exception e){
                e.printStackTrace();
                return null;
            }
        }
        //把个人信息通过MyMessBean,保存到session对象中
        public String myMessage(HttpServletRequest request,String userName){
            try{
                ArrayList listName=null;
                HttpSession session=request.getSession();
                listName=new ArrayList();
                rs=selectMess(request,userName);
                while(rs.next()){
                    MyMessBean mess=new MyMessBean();
                    mess.setName(rs.getString("name"));
                    mess.setSex(rs.getString("sex"));
                    mess.setBirth(rs.getString("birth"));
                    mess.setNation(rs.getString("nation"));
                    mess.setEdu(rs.getString("edu"));
                    mess.setWork(rs.getString("work"));
                    mess.setPhone(rs.getString("phone"));
                    mess.setPlace(rs.getString("place"));
                    mess.setEmail(rs.getString("email"));
                    listName.add(mess);
                    session.setAttribute("MyMess", listName);
                }
                return "ok";
            }catch(Exception e){
                e.printStackTrace();
                return null;
            }
        }
        
      

  2.   

    然后是struts2的配置文件 <!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts>
        <include file="example.xml"/>
        <!-- Configuration for the default package. -->
        <package name="default" extends="struts-default">
            <action name="loginAction" class="edu.login.Action.LoginAction">
                <result name="SUCCESS">/mainFrame/main.jsp</result>
                <result name="input">/login/index.jsp</result>
                <result name="ERROR">/login/index.jsp</result>
            </action>
            <action name="registerAction"  class="edu.login.Action.RegisterAction">
                <result name="SUCCESS">/login/index.jsp</result>
                <result name="input">/login/register.jsp</result>
                <result name="ERROR">/login/register.jsp</result>
            </action>
            <action name="upMessAction" class="edu.personManager.Action.UpdateMessAction">
                <result name="SUCCESS">/personMessage/lookMessage.jsp</result>
                <result name="input">/personMessage/updateMessage.jsp</result>
                <result name="ERROR">/personMessage/updateMessage.jsp</result>
            </action>
            <action name="upPassAction" class="edu.personManager.Action.UpdatePassAction">
                <result name="SUCCESS">/personMessage/lookMessage.jsp</result>
                <result name="input">/personMessage/updatePass.jsp</result>
            </action>
            <action name="addFriAction" class="edu.friendManager.Action.AddFriAction">
                <result name="SUCCESS">/friendManager/lookFriends.jsp</result>
                <result name="input">/friendManager/addFriend.jsp</result>
            </action>
            <action name="findFriAction" class="edu.friendManager.Action.FindFriAction">
                <result name="SUCCESS">/friendManager/findFriend.jsp</result>
                <result name="ERROR">/friendManager/lookFriends.jsp</result>
                <result name="input">/friendManager/lookFriends.jsp</result>
            </action>
            <action name="upFriAction" class="edu.friendManager.Action.UpdateFriAction">
                <result name="SUCCESS">/friendManager/lookFriends.jsp</result>
                <result name="input">/friendManager/updateFriend.jsp</result>
            </action>
            <action name="deleteFriAction" class="edu.friendManager.Action.DeleteFriAction">
                <result name="SUCCESS">/friendManager/lookFriends.jsp</result>
            </action>
            <action name="addDayAction" class="edu.dateTimeManager.Action.AddDayAction">
                <result name="SUCCESS">/dateTimeManager/lookDay.jsp</result>
                <result name="input">/dateTimeManager/addDay.jsp</result>
                <result name="ERROR">/dateTimeManager/addDay.jsp</result>
            </action>
            <action name="findDayAction" class="edu.dateTimeManager.Action.FindDayAction">
                <result name="SUCCESS">/dateTimeManager/findDay.jsp</result>
                <result name="input">/dateTimeManager/lookDay.jsp</result>
                <result name="ERROR">/dateTimeManager/lookDay.jsp</result>
            </action>
            <action name="upDayAction" class="edu.dateTimeManager.Action.UpdateDayAction">
                <result name="SUCCESS">/dateTimeManager/lookDay.jsp</result>
                <result name="input">/dateTimeManager/updateDay.jsp</result>
                <result name="ERROR">/dateTimeManager/updateDay.jsp</result>
            </action>
            <action name="deleteDayAction" class="edu.dateTimeManager.Action.DeleteDayAction">
                <result name="SUCCESS">/dateTimeManager/lookDay.jsp</result>
            </action>
            <action name="addFileAction" class="edu.fileManager.Action.AddFileAction">
                <interceptor-ref name="fileUpload">
                    <param name="maximumSize">1024000000</param>   
                </interceptor-ref>
                <interceptor-ref name="defaultStack"/>
                    <param name="savePath">/save</param>
                <result name="SUCCESS">/fileManager/success.jsp</result>
                <result name="input">/fileManager/fileUp.jsp</result>
                <result name="ERROR">/fileManager/fileUp.jsp</result>
            </action>
            <action name="findFileAction" class="edu.fileManager.Action.FindFileAction">
                <result name="SUCCESS">/fileManager/findFile.jsp</result>
                <result name="input">/fileManager/lookFile.jsp</result>
                <result name="ERROR">/fileManager/lookFile.jsp</result>
            </action>
            <action name="deleteFileAction" class="edu.fileManager.Action.DeleteFileAction">
                <result name="SUCCESS">/fileManager/lookFile.jsp</result>
                <result name="ERROR">/fileManager/findFile.jsp</result>
            </action>
            <action name="downFileAction" class="edu.fileManager.Action.DownFileAction">
                <param name="path">/save/${downloadFileName}</param>
                <result name="SUCCESS" type="stream">
                    <param name="contentType">application/octet-stream;charset=ISO8859-1</param>
                    <param name="inputName">InputStream</param>
                    <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
                    <param name="bufferSize">40960</param>
                </result>
            </action>
        </package>
    </struts>
      

  3.   

    这么花很难看,你可以设置一个断点在action的validate方法和execute方法的第一行,然后单步跟踪下去,你就会很清晰的看见为何返回input,如果没有进入相应方法,你就要考虑在拦截器设置断点了,目测应该是mysql.insertMess方法失败了,你可以单步跟踪进入这个方法,
      

  4.   

    必须错,String sql="insert into user"+"(userName,password,name,sex,birth,nation,edu,work,phone,place,email)"+"values("+"'"+userName+"'"+","+"'"+password+"'"+","+"'"+name+"'"+","+"'"+sex+"'"+","+"'"+birth+"'"+","+"'"+nation+"'"+","+"'"+edu+"'"+","+"'"+work+"'"+","+"'"+phone+"'"+","+"'"+place+"'"+","+"'"+email+"'"+")";
    这句sql语句肯定有问题。看了下,每个参数都多一对单引号。
      

  5.   

    写sql语句要这么写吗,出个错,位置都找不到
      

  6.   

    如果你没定义input 却爆了带input的异常
    可能是表单验证的问题 你注解掉action的方法 不进行表单验证就行
      

  7.   

    把单引号删了 但还是那个问题 返回的依然是input。  我是新手 多谢帮助。
      

  8.   

    回复于: 2013-05-22 11:01:43
    如果你没定义input 却爆了带input的异常
    可能是表单验证的问题 你注解掉action的方法 不进行表单验证就行
      

  9.   

    你可以通过输出语句去查看下,执行到哪里给返回了。或者用debug,打上单点去进行调试。最好还是用debug去调试下吧!看看是那块的问题。
      

  10.   

    这是你Action中的方法中的问题。
      

  11.   

    做个注册 登录 有那么困难啊?好好学习ssh吧
      

  12.   

    哎哟。。你第二次注册的时候查询肯定有了。。当然返回input页面。            //判断是否用户名已存在,如果存在返回one
                if(rs.next()){
                   sure="one";
                     
                      
                }
      

  13.   

    你注册页面 登录名 name=“loginname”  数据处理页面又定义userName 明显不匹配 把register.jsp登录名 name="userName"  就ok了