一尘不染

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

jsp

我试图通过使用以下Ajax中的URL连接到我的动作类。但是它没有进入我的动作类,甚至没有使用来显示选定的值$("#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>

阅读 261

收藏
2020-06-08

共1个答案

一尘不染

要将动作映射到方法,您应该执行以下操作

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

操作名称应没有操作扩展名,并且默认情况下将结果命名为“成功”,此处的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..!!");}
});
2020-06-08