首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

新手使用SSH框架,发现表单提交的数据在action类中全部为null解决方案

2012-03-04 
新手使用SSH框架,发现表单提交的数据在action类中全部为null本人是新手绝对的新手 不是计算机专业出身,完

新手使用SSH框架,发现表单提交的数据在action类中全部为null
本人是新手绝对的新手 不是计算机专业出身,完全自学了SSH,第一次将自己的所学集中起来凭着自己的感觉做一个小demo来玩,但是发现一个问题那就是,jsp表单中提交的一些数据,到了相应的action中全部为null,百思不得其解,我本人不在软件公司上班,从事的行业也不是软件行业所以找不到大牛帮我解决问题,现在求助各位论坛高手帮忙。
不罗嗦上代码:

HTML code
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html>  <head>    <base href="<%=basePath%>">        <title>My JSP 'addNewBasicUser.jsp' starting page</title>        <meta http-equiv="pragma" content="no-cache">    <meta http-equiv="cache-control" content="no-cache">    <meta http-equiv="expires" content="0">        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">    <meta http-equiv="description" content="This is my page">    <!--    <link rel="stylesheet" type="text/css" href="styles.css">    -->  </head>    <body>    <form action="rootuser/addOneNewBranch" method="post">        用户名:<input type="text" name="username"/><br/>        密码:<input type="text" name="password"/><br/>        支行名称:<input type="text" name="branchbankname"/><br/>        <input type="submit" value="提交"/>    </form>  </body></html>

这是对应的action类
Java code
package com.actions;import javax.annotation.Resource;import com.dao.interfaceImp.BasicUserDaoImp;import com.xu.model.BasicUser;import com.xu.utils.MD5;public class AddNewBranchBank {    private String username;    private String password;    private String branchbankname;    private BasicUserDaoImp budi;    public BasicUserDaoImp getBudi() {        return budi;    }    @Resource(name="BasicUserDaoImp")    public void setBudi(BasicUserDaoImp budi) {        this.budi = budi;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    public String getBranchbankname() {        return branchbankname;    }    public void setBranchbankname(String branchbankname) {        this.branchbankname = branchbankname;    }    public String execute(){        System.out.println(branchbankname+":"+username+":"+password);        try{        BasicUser bu = new BasicUser();        bu.setBranchBankName(branchbankname);        bu.setUsername(username);        bu.setPassword(MD5.encrypeMd5(password));        budi.addNewBasicUser(bu);        } catch(Exception e){            e.printStackTrace();            return "input";        }        return "success";    }}

这是相关的struts配置
HTML code
<package name="rootuser" namespace="/rootuser" extends="struts-default">            <interceptors>        <interceptor name="rootUserTypeCheck" class="com.xu.interceptors.RootUserCheck"/>        <interceptor-stack name="rootUserCheck">            <interceptor-ref name="rootUserTypeCheck"/>            <interceptor-ref name="defaultStack"/>        </interceptor-stack>    </interceptors>         <global-results>           <result name="input">/RootLogin/rootlogin.jsp</result>    </global-results>    <action name="login" class="com.actions.RootLogin">          <result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>    </action>    <action name="addNewBasicUser">        <interceptor-ref name="rootUserTypeCheck"/>        <result>/WEB-INF/jsps/RootUser/addNewBasicUser.jsp</result>    </action>    <action name="addOneNewBranch" class="com.actions.AddNewBranchBank">        <interceptor-ref name="rootUserTypeCheck"/>        <result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>    </action>    </package> 



现在的问题是我的action类中的execute方法执行后后台system.out.println打印出来的全部是null而且报空指针错。
现在请各位高手们帮我看看,我这到底是什么地方出问题了。



[解决办法]
探讨
1,2楼的同学,讲错了吧,strust2和stust1比一大区别就是不用任何继承也能达到取值效果,只需提供execute方法,建议去试试在说。。。

[解决办法]
拦截器应用错了
XML code
<action name="addOneNewBranch" class="com.actions.AddNewBranchBank">        <interceptor-ref name="[color=#FF0000]rootUserCheck[/color]"/><!--y引用拦截器栈,不是拦截器-->        <result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>    </action> 

热点排行
Bad Request.