2011-08-08 52 views
0

好吧,基本上我的struts servlet不能正常工作。如果有什么错误出现下面请告诉我:Struts没有调用我的servlet。我究竟做错了什么?

的Java资源的\ src \博\ DisplayCartServlet.java

package action; 

    import java.io.*; 
    import java.sql.SQLException; 

    import javax.servlet.*; 
    import javax.servlet.http.*; 
    import org.apache.struts.action.*; 

    import bo.*; 
    import dao.*; 

    public class DisplayCartServlet extends Action 
    { 
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, 
     HttpServletResponse response) 
     throws IOException, ServletException 
    { 

     String forward = new String("success");  ; 
     String productCode = request.getParameter("productCode");  

     HttpSession session = request.getSession(); 

     Cart cart = (Cart) session.getAttribute("cart"); 
     if (cart == null) 
     { 
      cart = new Cart(); 
      session.setAttribute("cart", cart); 
     } 

     int quantity = 1; 

     // Get product from product code 
     Product product=null; 
    try { 
     product = ProductDB.selectProduct(productCode);   
    } catch (SQLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
     session.setAttribute("product", product); 

     // If product exists, add or remove from cart 
     if (product != null) 
     { 
      LineItem lineItem = new LineItem(); 
      lineItem.setProduct(product); 
      lineItem.setQuantity(quantity); 
      if (quantity > 0) 
       cart.addItem(lineItem); 
      else 
       cart.removeItem(lineItem); 
     } 
     session.setAttribute("cart", cart); 

     return(mapping.findForward(forward)); 
    } 

} 

struts.xml的

<?xml version="1.0" encoding="UTF-8" ?> 
<!DOCTYPE struts PUBLIC 
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
"http://struts.apache.org/dtds/struts-2.0.dtd"> 
    <struts> 
     <constant name="struts.enable.DynamicMethodInvocation" value="false" /> 
     <constant name="struts.devMode" value="false" /> 
       <package name="example" namespace="/example" extends="struts-default">   
        . . . . 

        <action name="cart" class="action.DisplayCartServlet" > 
         <result name="success">/example/cart.jsp</result> 
        </action>   

       </package> 
    </struts> 

listProducts.jsp链接激活支柱和servlet

<div id="cartLink"><a href="<s:url action="cart?productCode=XM123456"/>">Add to Cart</a></div> 
+0

您是否收到任何错误讯息? – sreeprasad

+0

我收到请求的资源不可用。 – Mike

+2

这不是一个servlet。这是一个struts1操作类。要了解servlet实际是什么,请阅读我们的servlet标签维基页面:http://stackoverflow.com/tags/servlets/info纵观您的问题历史,我想您已经掌握了很多基本的Java EE(JSP/Servlet)概念错误或困惑。我建议先暂停一下代码,并首先编写一些基本的Java EE Web开发教程/书籍,以掌握基本概念。逐步学习Java EE。不要潜入一个大项目。从下到上工作,而不是从上到下。 – BalusC

回答

1

您的应用程序无法正常工作,因为你已经创建一个Struts 1动作类,但你试图用Struts 2的配置 XML配置。

Struts 1 and Struts 2 are very different

的Struts 1种配置被称为struts-config.xmlhttp://struts.apache.org/dtds/struts-config_1_3.dtd

Struts 2的配置被称为struts.xmlhttp://struts.apache.org/dtds/struts-2.0.dtd

您创建一个Struts 1 Action类(如该@BalusC指出的,是不是一个Servlet),所以你必须使用struts-config.xml ...

或者,

配置。 ..你必须创建一个Struts 2类来匹配struts.xml配置。

+0

具有很大的意义。 。 。感谢dpb! – Mike

1

只是检查Web服务器日志,找到正确的错误..即任何例外具体的问题。这将有助于缩小问题范围。

相关问题