本人是新手绝对的新手 不是计算机专业出身,完全自学了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而且报空指针错。
现在请各位高手们帮我看看,我这到底是什么地方出问题了。
不罗嗦上代码:<%@ 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而且报空指针错。
现在请各位高手们帮我看看,我这到底是什么地方出问题了。
解决方案 »
- 级联表单
- jbpm4改变任务处理人??
- jsp页面如何在数据库里查询中文?
- tomcat下,两种服务器的跳转代码是如何理解的?
- 小女子请教各位高手:为什么同样的代码在另外的机器上出现乱码?
- JSP如何得到中文表单项的值?
- 谁有chm格式的structs文档?
- 请问这是什么原因package javax.servlet does not exist import javax.servlet.*;,谢谢
- 在jdbc中如何調用sql server 存儲過程?並要取得返回值和輸出參數?
- 我在jsp程序中要输出中文,并且要用weblogic,可是中文总是乱码,怎么解决?
- 如何在struts的后台,调用exe命令
- 没多少分了,小问题请教,java web的jsp+servlet+sql2000。
这个类要继承 struts的ActionSupport
所以它无法接收你传过来的参数
<interceptor-ref name="defaultStack"/>在<interceptor-ref name="rootUserTypeCheck"/>
<interceptor-ref name="rootUserTypeCheck"/>
<result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>
</action>
红色部分应为 rootUserCheck
但是我给楼主个建议,目前常用的两种接受数据的方式(Action属性、DomainModel)都是 extens ActionSupport 你先把正常渠道走通了 然后再回头测试 普通JAVA类属性到底能否接受struts2的数据
<interceptor-ref name="rootUserCheck"/><!--y引用拦截器栈,不是拦截器-->
<result name="success">/WEB-INF/jsps/RootUser/desktop.jsp</result>
</action>