struts中传递request参数的问题,急!
刚刚接触jsp和struts,自己做了一个非常简单的例子,struts能够正常转到指定页面,但是输入表单里面的参数没有传递成功,怎么着都是null。请帮我看看是在哪里出了问题。
主要文件内容如下:
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<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>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
===========
struts-config.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<!-- ========== Data Source Configuration =============================== -->
<data-sources />
<!-- ========== Form Bean Definitions ================================== -->
<form-beans>
<form-bean name="testForm" type="com.youcompany.struts.form.TestForm" />
</form-beans>
<!-- ========== Global Exception Definitions ============================== -->
<global-exceptions />
<!-- ========== Global Forward Definitions =============================== -->
<global-forwards />
<!-- ========== Action Mapping Definitions =============================== -->
<action-mappings>
<action
attribute="testForm"
input="/test.jsp"
name="testForm"
path="/test"
type="com.youcompany.struts.action.TestAction"
validate="false">
<forward name="ok" path="/ok.jsp" />
</action>
</action-mappings>
<!-- ========== Controller Configuration ================================ -->
<controller />
<!-- ========== Message Resources Definitions ============================ -->
<message-resources parameter="com.youcompany.struts.ApplicationResources" />
<!-- ========== Plug Ins Configuration ================================= -->
</struts-config>
==========
test.jsp:
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
<html>
<head>
<meta name = "Generator" content = "Easy Struts Xslt generator for Eclipse (http://easystruts.sf.net).">
<title>Struts Form for testForm</title>
</head>
<body>
<form action="test.do">
<input type="text" name="p1" value="" />
<input type="submit" value="submit" />
</form>
<body>
</html>
=========
ok.jsp:
<p>
test!!!
</p>
<% out.println(request.getAttribute("p1"));%>
==============
TestForm.java:
// Created by Xslt generator for Eclipse.
// XSL : not found (java.io.FileNotFoundException: (系统找不到指定的路径。))
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl
package com.youcompany.struts.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
/**
* TestForm.java created by EasyStruts - XsltGen.
* http://easystruts.sf.net
* created on 04-19-2006
*
* XDoclet definition:
* @struts:form name="testForm"
*/
public class TestForm extends ActionForm {
// --------------------------------------------------------- Instance Variables
String p1;
// --------------------------------------------------------- Methods
/**
* Method reset
* @param ActionMapping mapping
* @param HttpServletRequest request
*/
public String getP1(){
return p1;
}
public void setP1(String p1){
this.p1=p1;
}
public void reset(ActionMapping mapping, HttpServletRequest request) {
}
}
=========
testAction.java:
// Created by Xslt generator for Eclipse.
// XSL : not found (java.io.FileNotFoundException: (系统找不到指定的路径。))
// Default XSL used : easystruts.jar$org.easystruts.xslgen.JavaClass.xsl
package com.youcompany.struts.action;
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;
import com.youcompany.struts.form.TestForm;
/**
* TestAction.java created by EasyStruts - XsltGen.
* http://easystruts.sf.net
* created on 04-19-2006
*
* XDoclet definition:
* @struts:action path="/test" name="testForm" input="/test.jsp"
* @struts:action-forward name="/ok.jsp" path="/ok.jsp"
*/
public class TestAction extends Action {
// --------------------------------------------------------- Instance Variables
// --------------------------------------------------------- Methods
/**
* Method execute
* @param ActionMapping mapping
* @param ActionForm form
* @param HttpServletRequest request
* @param HttpServletResponse response
* @return ActionForward
* @throws Exception
*/
public ActionForward execute(
ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception {
TestForm testForm = (TestForm) form;
String result=testForm.getP1();
request.setAttribute("p1",result);
//System.out.println(result);
return(mapping.findForward("ok"));
//throw new UnsupportedOperationException("Generated method 'execute(...)' not implemented.");
}
}
=========
开发环境是eclipse2.1+tomcat5.0.29+easystruts.
运行结果显示
test!!!
null