从jsp页面接收'null'值到Struts 2 Action

时间:2011-04-18 05:54:35

标签: java struts2

我有一个jsp页面和struts 2 Action类。当我在jsp中提交表单时,我会在操作中获得空值。

JSP代码如下所示:

   <s:form id="user" name="user" action="initUserAdmin">

    <s:textfield name="userName"  cssClass="txtbox" size="30" />
    <div class="btn"><a href='<s:url action="searchUserAdmin"/>' 
    title="Search"    id="button" class="btn" ><span>Search</span></a></div>

   </s:form>

struts.xml有这个部分

      <action name="*UserAdmin" method="{1}" class="com.mphasis.im.web.action.UserAction">
        <result name="init" type="tiles">user</result>
        <result name="search" type="tiles">user</result>
        <result name="reset" type="tiles">user</result>
        <result name="createNew" type="tiles">createNewUser</result>
    </action>

Action类有这个:

        public class UserAction extends BaseAction
          {
            public String userName;

        public String getUserName()
        {
      return userName;
        }

        public void setUserName(String userName)
        {
      this.userName = userName;
        }

            public String search()
           {
            searchProcessed = true;

            System.out.println("******** inside search ******");

            System.out.println("username = "+ userName);

            return TilesConstants.SEARCH;
           }

当我在jsp页面的文本框中键入一个字符串时,输出如下所示。

        ******** inside search ******
         username = null

可能是什么问题?我错过了什么吗?

2 个答案:

答案 0 :(得分:3)

<a href='<s:url action="searchUserAdmin"/>' 
title="Search"    id="button" class="btn" >

它只是动作网址的一个href,没有参数。因此,操作中的“userName”为空。

答案 1 :(得分:0)

<s:form id="user" name="user" action="initUserAdmin">

    <s:textfield name="userName"  cssClass="txtbox" size="30" />
    <div class="btn"><a href='javascript:submitme()' 
    title="Search"    id="button" class="btn" ><span>Search</span></a></div>

   </s:form>

的Javascript

function submitme(){
document.user.submit()
}

此外,在动作映射中,您提供的动作名称为UserAdmin,而在您使用initUserAdmin的表单操作中。它们必须相同