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

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

<%@ 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类

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配置

<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而且报空指针错。
现在请各位高手们帮我看看,我这到底是什么地方出问题了。

...全文
440 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
宏Lee 2012-01-18
  • 打赏
  • 举报
回复
那10楼的就去看看传智播客或者马士兵的视频,看看是不是非得继承actionSupport,不继承actionSupport不是不就没用了
宏Lee 2012-01-18
  • 打赏
  • 举报
回复
1,2楼的同学,讲错了吧,strust2和stust1比一大区别就是不用任何继承也能达到取值效果,只需提供execute方法,建议去试试在说。。。
宏Lee 2012-01-18
  • 打赏
  • 举报
回复
楼主将<interceptor-ref name="rootUserTypeCheck"/>,<interceptor-ref name="defaultStack"/>换下顺序先
<interceptor-ref name="defaultStack"/>在<interceptor-ref name="rootUserTypeCheck"/>
angeith 2012-01-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 a199231 的回复:]
1,2楼的同学,讲错了吧,strust2和stust1比一大区别就是不用任何继承也能达到取值效果,只需提供execute方法,建议去试试在说。。。
[/Quote]

内牛满面,不继承,我了个切,强人
  • 打赏
  • 举报
回复
<action name="addOneNewBranch" class="com.actions.AddNewBranchBank">
<interceptor-ref name="rootUserTypeCheck"/>
<result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>
</action>
红色部分应为 rootUserCheck
readme1988 2012-01-18
  • 打赏
  • 举报
回复
会被<interceptor-ref name="rootUserTypeCheck"/>拦截器拦截
nt_gaoyonglei0216 2012-01-18
  • 打赏
  • 举报
回复
没有继承ActionSupport,所以它无法接收你传过来的参数
wnf2009 2012-01-18
  • 打赏
  • 举报
回复
拦截器应用错了

<action name="addOneNewBranch" class="com.actions.AddNewBranchBank">
<interceptor-ref name="rootUserCheck"/><!--y引用拦截器栈,不是拦截器-->
<result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>
</action>

angeith 2012-01-18
  • 打赏
  • 举报
回复
拿项目说话,不要看视频。看看项目中会不会继承
香蕉猪 2012-01-18
  • 打赏
  • 举报
回复
报空指针错可能是数据没有提交过去,也可能是提交不完全等,,,楼主应该将报错的代码贴出来,这样才便于大家帮你查错.....
szy3121 2012-01-18
  • 打赏
  • 举报
回复
一个普通的JAVA类,不继承ActionSupport,的确可以执行execute()方法,但是,到底能不能接受参数我没试过,不敢下定论,
但是我给楼主个建议,目前常用的两种接受数据的方式(Action属性、DomainModel)都是 extens ActionSupport 你先把正常渠道走通了 然后再回头测试 普通JAVA类属性到底能否接受struts2的数据
xuyueting1234 2012-01-18
  • 打赏
  • 举报
回复
我用的是struts2 你说的这个方法不行啊!
[Quote=引用 2 楼 lichongda 的回复:]

没有继承ActionSupport
所以它无法接收你传过来的参数
[/Quote]
xuyueting1234 2012-01-18
  • 打赏
  • 举报
回复
不行啊!
[Quote=引用 3 楼 a199231 的回复:]

楼主将<interceptor-ref name="rootUserTypeCheck"/>,<interceptor-ref name="defaultStack"/>换下顺序先
<interceptor-ref name="defaultStack"/>在<interceptor-ref name="rootUserTypeCheck"/>
[/Quote]
lichongda 2012-01-17
  • 打赏
  • 举报
回复
没有继承ActionSupport
所以它无法接收你传过来的参数
zxyah 2012-01-17
  • 打赏
  • 举报
回复
AddNewBranchBank
这个类要继承 struts的ActionSupport
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

81,092

社区成员

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

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