在Struts 2中使用Ajax URL调用操作

时间:2013-12-16 08:42:10

标签: java jquery ajax jsp struts2

我正在尝试使用Ajax中的URL连接到我的action类。但它没有进入我的动作类,甚至没有使用$("#selectedCountry").val()显示所选值。

function getstates(){           
    alert($("#selectedCountry").val());         
    $.ajax({
      type : "GET",
      url  : "/ThirdTask/selectstate.action",
      dataType : 'text',
      data : "name="+$("#selectedCountry").val(),
      success : function(){
        $('statesdivid').html();
      },
      error : alert("No values found..!!")
    });         
}

我的JSP代码如下:

<s:select  name="selectedCountry"  list="{'india','china'}"  onclick="getstates();"/></div>
<div id="statesdivid">
<s:if test="%{#request.selectedstatenames != null}"> 
<s:select list="#request.selectedstatenames" name="selectedState">
</s:select>
</s:if>
</div>

我的struts.xml

<action name="selectstate.action" class="com.thirdtask.actions.SelectAction" method="selectstate">
 <result name="success">selecttag.jsp</result> 
</action>

1 个答案:

答案 0 :(得分:3)

要将操作映射到方法,您应该执行类似

的操作
<action name="selectstate" class="com.thirdtask.actions.SelectAction" method="selectstate">
  <result>/selecttag.jsp</result> 
</action>

动作名称应该没有动作扩展名,默认情况下结果名为“success”,JSP的路径应该是绝对的。

调用ajax

$.ajax({
    type : "GET",
    url  : "<s:url action='selectstate'/>",
    dataType : 'text/javascript',
    data : {'name' : $("#selectedCountry").text()},
    success : function(result){
      if (result != null && result.length > 0){
        $("statesdivid").html(result);
      }
    },
    error : function(xhr, errmsg) {alert("No values found..!!");}
});