MultiActionController请求参数为null

时间:2012-10-08 18:59:47

标签: java spring jsp

我有以下逻辑index.jsp - > redirect sigin.jsp - > SigninController - > admin_site.jsp或user_site.jsp - > MultiActionController(AdminController或UserController)

问题出现在AdminController(MultiActionController)中,因为我无法读取请求参数。我究竟做错了什么?我该怎么办?

<bean id="placeholderConfig"
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location"
        value="WEB-INF/classes/imperialii-servlet.properties" />
</bean>

<bean id="entranceController" class="ro.imperialii.controller.EntranceController">
    <property name="utilizator">
        <ref bean="utilizator"/>
    </property>
</bean>
<bean id="utilizator" class="ro.imperialii.model.Utilizator" />
<bean id="utilizatorValidator" class="ro.imperialii.model.UtilizatorValidator" />
<bean id="utilizatorMngr" class="ro.imperialii.model.UtilizatorManager" />
<bean id="proprietateMngr" class="ro.imperialii.model.ProprietateManager" />
<bean id="tipdeproprietateMngr" class="ro.imperialii.model.Tip_de_proprietate_Manager" />
<bean id="signinFormController" class="ro.imperialii.controller.SignInController" >
    <!-- 
    <property name="sessionForm"><value>true</value></property>
    <property name="commandName"><value>logonForm</value></property>
    <property name="commandClass"><value>ro.imperialii.model.Utilizator</value></property>
    <property name="validator"><ref bean="utilizatorValidator"/></property>
    <property name="formView"><value>signin</value></property>
    -->
    <property name="sessionForm" value="true"/>
    <property name="commandName" value="user"/>
    <property name="commandClass" value="ro.imperialii.model.Utilizator"/>
    <property name="utilizatorManager">
        <ref bean="utilizatorMngr"/>
    </property>
    <property name="proprietateManager">
        <ref bean="proprietateMngr"/>
    </property>
    <property name="tip_de_proprietate_Manager">
        <ref bean="tipdeproprietateMngr"/>
    </property>
</bean>
<bean id="adminFormController" class="ro.imperialii.controller.AdminController" >
    <property name="utilizatorManager">
        <ref bean="utilizatorMngr"/>
    </property>
    <property name="tip_de_proprietate_Manager">
        <ref bean="tipdeproprietateMngr"/>
    </property>
    <property name="myutilizator">
        <ref bean="utilizator"/>
    </property>
</bean>
<bean id="urlMapping" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
    <property name="mappings">
        <props>
            <prop key="/signin.htm">signinFormController</prop>
            <prop key="/admin/*.htm">adminFormController</prop>
            <!--
            <prop key="/signin.htm">signinFormController</prop>
            -->
        </props>
    </property>
</bean>

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename"><value>messages</value></property>
</bean>

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="viewClass"><value>org.springframework.web.servlet.view.JstlView</value></property>
    <property name="prefix"><value>/WEB-INF/jsp/</value></property>
    <property name="suffix"><value>.jsp</value></property>
</bean>


<!-- Database Resources and Transaction Management -->
<!--
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url"
        value="jdbc:mysqlql://localhost:3306/imperialii" />
    <property name="username" value="root" />
    <property name="password" value="" />
</bean>
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource" ref="dataSource"></property>
    <property name="useTransactionAwareDataSource" value="false" />
    <property name="mappingResources">
        <list>
            <value>Utilizator.hbm.xml</value>
            <value>Proprietate.hbm.xml</value>
            <value>Tip_de_proprietate.hbm.xml</value>
        </list>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="connection.pool_size">1</prop>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.MySQL5Dialect
            </prop>
            <prop key="show_sql">true</prop>
            <prop key="hibernate.generate_statistics">true</prop>
            <prop key="hibernate.cglib.use_reflection_optimizer">
                false
            </prop>
        </props>
    </property>
</bean>
-->

我的admin_site.jsp:

<form:form method="post">
<div id="left">

<div id="sub_left">

<h3>Utilizator</h3>
<p> Nume utilizator </br>
<input id="nume_utilizator" type="text" style="width:100%; max-width: 160px;" name="nume_utilizator">
<p> Numele de familie </br>
<input id="nume" type="text" style="width:100%; max-width: 160px;" name="nume">
<p> Prenumele </br>
<input id="prenume" type="text" style="width:100%; max-width: 160px;" name="prenume">
<p> Numarul de telefon personal </br>
<input id="telefon_personal" type="text" style="width:100%; max-width: 160px;" name="telefon_personal">
<p> Numarul de telefon al firmei </br>
<input id="telefon_firma" type="text" style="width:100%; max-width: 160px;" name="telefon_firma">
<p> Parola </br>
<input id="parola" type="password" style="width:100%; max-width: 160px;" name="parola">
<p> Status activ/inactiv </br>
<select name="status">
    <option name="activ" value="activ">ACTIV</option>
    <option name="inactiv" value="inactiv">INACTIV</option>
</select>
<p> Actiuni </br>
<!--
<button id="insereaza_modifica" type="button" name="insereaza_modifica">Insereaza / Modifica</button> 
-->
<a href="admin/insereaza_u.htm">Insereaza</a></br>
<a href="admin/sterge_u.htm">Sterge</a></br>
<a href="admin/modifica_u.htm">Modifica</a>
</div>

另一个奇怪的事实是我首先点击了insereaza_u.htm并重新显示了页面,但是当我第二次点击modifica_u.htm时,请求行变为:localhost / imperialii / admin / admin / modifica_u.htm(通知2管理员路径)

以下是AdminController:

public class AdminController extends MultiActionController {
    protected final Log logger = LogFactory.getLog(getClass());
    private UtilizatorManager utilizatorManager;
    private Tip_de_proprietate_Manager tip_de_proprietate_Manager;
    private Utilizator myutilizator;
    private String nume;
    private String prenume;
    private String nume_de_utilizator;
    private String parola;
    private String numar_tel_personal;
    private String numar_tel_firma;
    private String status_utilizator;

    public ModelAndView insereaza_u(HttpServletRequest request, HttpServletResponse response) throws Exception {
        System.out.println("insereaza_u method called");
        nume = request.getParameter("nume");
        prenume = request.getParameter("prenume");
        nume_de_utilizator = request.getParameter("nume_utilizator");
        parola = request.getParameter("parola");
        numar_tel_personal = request.getParameter("telefon_personal");
        numar_tel_firma = request.getParameter("telefon_firma");
        status_utilizator = request.getParameter("status");
        logger.info("insereaza Request nume_utilizator " + nume_de_utilizator);
        logger.info("insereaza Request status " + status_utilizator);
        logger.info("insereaza Request ContextPath " + request.getContextPath());

        Map myMap = request.getParameterMap();

        Iterator entries = myMap.entrySet().iterator();
        while (entries.hasNext()) {
          Entry thisEntry = (Entry) entries.next();
          Object key = thisEntry.getKey();
          logger.info("insereaza Map Request Parameter " + key.toString());
          Object value = thisEntry.getValue();
          logger.info("insereaza Map Request Value " + value.toString());
          // ...
        }


        myutilizator.setNume(nume);
        myutilizator.setPrenume(prenume);
        myutilizator.setNume_de_utilizator(nume_de_utilizator);
        myutilizator.setParola(parola);
        myutilizator.setNumar_tel_personal(numar_tel_personal);
        myutilizator.setNumar_tel_firma(numar_tel_firma);
        myutilizator.setStatus_utilizator(status_utilizator);

        //utilizatorManager.saveUtilizator(myutilizator);
        myMap = listEntities();
        //return new ModelAndView("admin_site", "message", "Add method called");
        return new ModelAndView("admin_site", "model", myMap);
    }



    public ModelAndView modifica_u(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        System.out.println("modifica_u method called");
        return new ModelAndView("admin_site", "message", "Remove method called");
    }

提前感谢任何建议!

0 个答案:

没有答案