最近在自学struts,正在练习登陆系统的例子程序,但是老是在ActionForm那里出现问题,就是在excute那方法里面的FORM,老是得不到login.jsp提交上来的数据,请问是什么原因?
下面是我的代码import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LoginAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm loginForm=(LoginForm)form;
System.out.println(loginForm.getUsername());
if(loginForm.getUsername().equals("james"))
{
return mapping.findForward("loginSuccess");
}else
{
return mapping.findForward("loginFailure");
}
}}
LOGIN.JSP
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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 'Login.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="<%= request.getContextPath()%>/login.do" method="post">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
配置文件<?xml version="1.0" encoding="UTF-8"?><struts-config>
<form-beans name="loginForm" type="LoginForm"></form-beans>
<action-mappings>
<action path="/login" type="LoginAction" name="loginForm">
<forward name="loginSuccess" path="/LoginSuccess.jsp"></forward>
<forward name="loginFailure" path="/LoginFailure.jsp"></forward>
</action>
</action-mappings>
</struts-config>
先谢谢
下面是我的代码import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class LoginAction extends Action { @Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
LoginForm loginForm=(LoginForm)form;
System.out.println(loginForm.getUsername());
if(loginForm.getUsername().equals("james"))
{
return mapping.findForward("loginSuccess");
}else
{
return mapping.findForward("loginFailure");
}
}}
LOGIN.JSP
<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%
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 'Login.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="<%= request.getContextPath()%>/login.do" method="post">
username:<input type="text" name="username"><br>
password:<input type="password" name="password"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
配置文件<?xml version="1.0" encoding="UTF-8"?><struts-config>
<form-beans name="loginForm" type="LoginForm"></form-beans>
<action-mappings>
<action path="/login" type="LoginAction" name="loginForm">
<forward name="loginSuccess" path="/LoginSuccess.jsp"></forward>
<forward name="loginFailure" path="/LoginFailure.jsp"></forward>
</action>
</action-mappings>
</struts-config>
先谢谢
解决方案 »
- 关于jpa/hibernate的性能
- infromix数据库用hibernate无法获得list值,超级诡异。。。
- Spring Aop (aspect)的 一个小问题 : 无法拦截
- 公司里面测试是不是都用的junit, 看看下面这道题。。。。。。。。。。。。。。。。。
- SSH整合出现问题
- Maven构建Spring+CXF
- 求助:使用RESIN如何配置支持SSI
- 用java开发的webservices,返回值是jdom的Element类型,用delphi如何调用? java的参数类型已经确定就是Jdom,不是String类型,在delphi中
- 本人要毕业了,散分!
- 什么工具可以根据设计设计好的ER图,导出java的model类。
- 有人用过fileUpLoad上传东西的吗?
- tomcat加载逆向生成工程时出现的
把LoginForm 贴出来看看。
private String username=null;
private String password=null;
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;
}
}
2.在form类实现reset方法 加上 System.out.println(“sss”); 看看有没有输出
如果没有输出的话就是struts.xml配置form写错了,
3.把form改为动态form看看能不能取值?
貌似现在我接手的项目都是Struts1 的,很少用到Struts2 的。
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<form-bean name="" type=""></form-bean>
</form-beans>struts1的form-bean是这么配的。
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
2.文本框的标签用:
<html:text property="user.name"/>
"user.name"是你在form里面实例化的类和对象的属性
你应该看看这块有没有问题 能进入action里面吗
<action path="/login"
改成这样:
<form-beans>
<form-bean name="loginForm" type="LoginForm">
</form-bean> </form-beans>
<form-bean name="loginForm" type="LoginForm">
</form-bean>