1

It's my first time to use Struts and I build a very simple program
But I always got this error :(
I've googled it for 2 days but my type is correct for sure. Here are my codes:

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>
<filter>
    <filter-name>SetCharacterEncoding</filter-name>
    <filter-class>tw.com.whichone.filter.SetCharacterEncodingFilter</filter-class>
    <init-param>
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>SetCharacterEncoding</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter>
    <filter-name>whichone</filter-name>
    <filter-class>tw.com.whichone.filter.CheckParameter</filter-class>
</filter>
<filter-mapping>
    <filter-name>whichone</filter-name>
    <url-pattern>*.whichone</url-pattern>
</filter-mapping>


<!-- Standard Action Servlet Configuration (with debugging) -->
<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/conf/struts-config.xml</param-value>
    </init-param>
    <init-param>
        <param-name>debug</param-name>
        <param-value>2</param-value>
    </init-param>
    <init-param>
        <param-name>detail</param-name>
        <param-value>2</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<!-- servlet-mapping -->

<servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
</servlet-mapping>

<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>


<taglib>
    <taglib-uri>http://jakarta.apache.org/struts/tags-bean</taglib-uri>
    <taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://jakarta.apache.org/struts/tags-logic</taglib-uri>
    <taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://jakarta.apache.org/struts/tags-html</taglib-uri>
    <taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://jakarta.apache.org/struts/tags-nested</taglib-uri>
    <taglib-location>/WEB-INF/tlds/struts-nested.tld</taglib-location>
</taglib>

<taglib>
    <taglib-uri>http://jakarta.apache.org/struts/tags-tiles</taglib-uri>
    <taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location>
</taglib>


struts-config

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE struts-config PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
      "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">

    <struts-config>
<form-beans>
    <form-bean type="org.apache.struts.action.DynaActionForm"
        name="Store_Data">
        <form-property type="java.lang.String" name="one" />
        <form-property type="java.lang.String" name="StoreSeqNo" />
        <form-property type="java.lang.String" name="StoreName" />
        <form-property type="java.lang.String" name="StoreOwner" />
        <form-property type="java.lang.String" name="StoreAddress" />
        <form-property type="java.lang.String" name="StorePhone" />
        <form-property type="java.lang.String" name="StoreOpenDate" />

        <!-- "回首頁"連結清session專用變數 -->
        <form-property type="java.lang.String" name="CleanSession" />
    </form-bean>
</form-beans>

<global-forwards>
    <forward path="/success.html" name="Success" />
    <forward path="/error.html" name="Error" />
</global-forwards>

<action-mappings>
    <action path="/Store_Data_Parised" type="action.Store_Data_Parised"
        name="Store_Data" scope="request" validate="false" parameter="one">
    </action>
</action-mappings>


<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" />
<message-resources parameter="MessageResources" />
<plug-in className="org.apache.struts.tiles.TilesPlugin">
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml"      
    />
    <set-property property="moduleAware" value="true" />
</plug-in>
<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml" />
</plug-in>
    </struts-config>

index.html

    <html>
    <head>
    <title>Test Page</title>
    </head>


    <body>
<form action="Store_Data_Parised.do?one=insert">
    <hr></hr>
    <h3>Add new store</h3>
    <table border="1" bordercolor="black">
        <tr>
            <td align="right">Store Name:</td>
            <td colspan="3"><input type="text" name="StoreName"
                maxlength="20" /></td>
        </tr>
        <tr>
    </table>

    <table border="1" bordercolor="black">
        <tr>
            <td align="right">Store Owner:</td>
            <td colspan="3"><input type="text" name="StoreOwner"
                maxlength="20" /></td>
        </tr>
        <tr>
    </table>

    <table border="1" bordercolor="black">
        <tr>
            <td align="right">Store Address:</td>
            <td colspan="3"><input type="text" name="StoreAddress"
                maxlength="20" /></td>
        </tr>
        <tr>
    </table>

    <table border="1" bordercolor="black">
        <tr>
            <td align="right">Store Phone:</td>
            <td colspan="3"><input type="text" name="StorePhone"
                maxlength="20" /></td>
        </tr>
        <tr>
    </table>

    <table border="1" bordercolor="black">
        <tr>
            <td align="right">OpenDate:</td>
            <td colspan="3"><input type="text" name="StoreOpenDate"
                maxlength="20" /></td>
        </tr>
        <tr>
    </table>
    <hr></hr>
    <input type="submit" value="Add" />

</form>
</body>
</html>

Store_Data_Parised.java

            public class Store_Data_Parised {

    public ActionForward insert(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response)
        throws Exception {

    DynaActionForm Form = (DynaActionForm) form;
    String one = (String) Form.get("one");
    String StoreName = (String) Form.get("StoreName");
    String StoreOwner = (String) Form.get("StoreOwner");
    String StoreAddress = (String) Form.get("StoreAddress");
    String StorePhone = (String) Form.get("StorePhone");
    String StoreOpenDate = (String) Form.get("StoreOpenDate");

    try {

        Map criteria = new HashMap();
        criteria.put("StoreName", StoreName);
        criteria.put("StoreOwner", StoreOwner);
        criteria.put("StoreAddress", StoreAddress);
        criteria.put("StorePhone", StorePhone);
        criteria.put("StoreOpenDate", StoreOpenDate);

        Store_Data_handler.insert(criteria);

    } catch (Exception e) {

        return mapping.findForward("Error");
    }
    return mapping.findForward("Success");
    }

        }

Kooper
  • 715
  • 1
  • 10
  • 13
  • 1 . how do you submit the value to action class ? and 2. check your action mapping in config xml. 3. There is no clue how you submit the value hence you must properly ask question so that others can help you. :) good luck – Java Questions Dec 11 '12 at 12:16
  • Your class `Store_Data_Parised` should extend one of Struts' `Action` classes. In your example it is POJO. – Victor Dec 11 '12 at 19:42

1 Answers1

1

The class needs to extends with "Action" eg: public class Store_Data_Parised extends Action

Abi Divi
  • 11
  • 4