发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

页面不会跳转



页面不会跳转

我读取displayAddProductForm.jsp页面后输入几个参数,目的是要跳转到displaySaveProduct.jsp那里显示出我输入的参数,但就是不会跳转,情问问题在哪

我的jsp页面displayAddProductForm.jsp如下:

<form method="post" action="?action=saveProduct"> 
<table> 
<tr> 
<td>product name: </td> <td> <input type="text" name="productName" /> </td> 
</tr> 

<tr> 
<td>Description: </td> <td> <input type="text" name="description" /> </td> 
</tr> 

<tr> 
<td>;Price: </td> <td> <input type="text" name="price" /> </td> 
</tr> 

<tr> 
<td> <input type="reset"/> </td> <td> <input type="submit" value="add"/> </td> 
</tr> 
</table> 
</form> 


在WEB-INF/classes/app01a下的SaveProductAction代码如下:
package app01a; 
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 SaveProductAction extends Action  
{ 
    public ActionForward execute(ActionMapping mappings,ActionForm form,HttpServletRequest req,HttpServletResponse resp) 
throws Exception 
{ 
ProductTO product=new ProductTO(); 
product.setProductName(req.getParameter("productName")); 
product.setDescription(req.getParameter("description")); 
product.setPrice(req.getParameter("price")); 
req.setAttribute("product", product); 
return mappings.findForward("success"); 
} 
} 


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/dtd/web-app_2_3.dtd"> 
<web-app> 
  <display-name>struts </display-name> 
   <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>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="iso-8859-1"?> 
<!DOCTYPE struts-config SYSTEM  
"http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd"> 

<struts-config> 
    <action-mappings> 
       <action path="/displayAddProductForm" forward="/displayAddProductForm.jsp"/> 
       <action path="/saveProduct" scope="requet" type="app01a.SaveProductAction">  
      <forward name="success" path="/displaySaveProduct.jsp"/> 
       </action> 
    </action-mappings> 
</struts-config>
编辑 回复 快速回复 TOP

Re:页面不会跳转

不懂Struts 其他人继续!哈哈!
快乐渡过每一天,减肥坚持每一天
编辑 回复 快速回复 TOP

Re:页面不会跳转

 顺便说一下 <action path="/saveProduct" scope="requet" type="app01a.SaveProductAction">
这里应该是<action path="/saveProduct" scope="request" type="app01a.SaveProductAction">
我只是在论坛里写错了
编辑 回复 快速回复 TOP

Re:页面不会跳转

我有两个地方没看懂
1,displayAddProductForm.jsp中
<form method="post" action="?action=saveProduct"> 你的action是提交到哪里去啊?改为
<form method="post" action="saveProduct">此处 saveProduct为struts-config.xml中定义的action的path.
2,struts-config.xml中
<action path="/displayAddProductForm" forward="/displayAddProductForm.jsp"/> 此行多余
<action path="/saveProduct" scope="requet" type="app01a.SaveProductAction">
<forward name="success" path="/displaySaveProduct.jsp"/>
</action>
我认为你就是<form action="">中的action没有写对,其他都不影响运行。
编辑 回复 快速回复 TOP

Re:页面不会跳转

可以参考一下我的说法.

ProductTO product=new ProductTO();
product.setProductName(req.getParameter("productName"));
product.setDescription(req.getParameter("description"));
product.setPrice(req.getParameter("price"));
req.setAttribute("product", product);

既然你用了STRUTS,为何还要去request.getParameter("parameter") ?现成的FORM里面已经封装了数据,为何不用.此其一.

其二,如果你的FORM需要validate的话,你没有在validation.xml文件配置.或者你在struts-config.xml配置文件中写上一个属性.
validate=false

我想问题大概是这样的.
编辑 回复 快速回复 TOP

Re:页面不会跳转

ProductTO product=new ProductTO();
想必你的ProductTO 是个form吧,怎么能new一个form呢
下面这个:
ProductTO product=(ProductTO)form;
后面的也错了
product.getProductName("productName");
编辑 回复 快速回复 TOP
发新话题