Struts не вызывает мой сервлет.Что я делаю неправильно? - PullRequest
0 голосов
/ 09 августа 2011

Ну, в общем, мой сервлет распорок не работает правильно. Скажите, пожалуйста, если что-то не так внизу:

Ресурсы Java \ src \ bo \ 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 ссылка, которая активирует распорки и сервлет

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

Ответы [ 2 ]

1 голос
/ 10 августа 2011

Ваше приложение работает неправильно, потому что вы создали класс действий Struts 1 , но вы пытаетесь настроить его с помощью конфигурации Struts 2 XML.

Распорки 1 и Распорки 2 очень разные .

Struts 1 Конфигурация называется struts-config.xml: http://struts.apache.org/dtds/struts-config_1_3.dtd

Конфигурация Struts 2 называется struts.xml: http://struts.apache.org/dtds/struts-2.0.dtd

Вы создали класс действий Struts 1 (который, как указал @BalusC, не является сервлетом), поэтому вы должны настроить его, используя struts-config.xml ...

Или,

... вам нужно создать класс Struts 2, соответствующий конфигурации struts.xml.

1 голос
/ 09 августа 2011

Просто проверьте журналы веб-сервера и найдите правильную ошибку, т. Е. Любые исключения, характерные для данной проблемы.что поможет вам сузить проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...