struts2中使用AJAX

struts2中使用Ajax非常爽,特别好用,今天做网上花店,说一个添加花的功能吧,花有大类别和小类别之分,这么说吧,有个特别突出的类似的使用地方就是省市级联的下拉列表框,花有大的分类和小的分类,所以用到了联动方式,上网时在很多网页都有看到这种效果,向人人网的选择省就可以显示对应的该省的大学等等。在Struts2中就可以非常轻松的实现,当然,不用struts2也可以实现,其实说到底原理是一样的。下面是jsp页面的部分代码,包括js代码:

<</span>tr>

                                   <</span>td style="font-size: 14; font-weight: bold;">

                                          类别:

                                   </</span>td>

                                   <</span>td style="font-size: 14; font-weight: bold;">

                                          范围:<</span>select name="flowerDetail.type.btypeid" size="1" id="bigtypes" onchange="changeSmalltype(this)">  

                                          <</span>c:forEach var="com" items="${requestScope.bigtypes}">

                                          <</span>c:if test="${requestScope.flowerdetail.type.btypeid==com.id}">

                                                 <</span>option value="${com.id}" selected="selected">

                                                               ${com.btypename}

                                                        </</span>option>

                                                 </</span>c:if>

                                                        <</span>option value="${com.id}">

                                                               ${com.btypename}

                                                        </</span>option>

                                                 </</span>c:forEach>

                                          </</span>select>

                                         

                                          花类:<</span>select name="flowerDetail.flower.flotype" size="1" id="smalltypes">      

                                          <</span>c:forEach var="com" items="${requestScope.smalltypes}">

                                          <</span>c:if test="${requestScope.flowerdetail.flower.flotype==com.id}">

                                                 <</span>option value="${com.id}" selected="selected">

                                                               ${com.stypename}

                                                        </</span>option>

                                                        </</span>c:if>

                                                                      <</span>option value="${com.id}">

                                                               ${com.stypename}

                                                        </</span>option>

                                                 </</span>c:forEach>

                                          </</span>select>

                                   </</span>td>

                            </</span>tr>

       Js代码:    

<</span>script type="text/javascript">

                            function changeSmalltype(vadd){

                                   var bigtypeid=vadd.value;

                                   var optionSmalltype;

                                   $.post('${pageContext.request.contextPath}/ajax/changesmalltypetwo.action',{'bigtypeid' : bigtypeid},function(data) {

                                                        document.getElementByIdx_x("smalltypes").options.length=0;

                                                        var list=data.smalltypelist;

                                                        for(var i in list){

                                                               optionSmalltype=new Option(list[i].stypename,list[i].id);

                                                               document.getElementByIdx_x("smalltypes").options.add(optionSmalltype);

                                                        }

                                                 }, "json");

                                  

                            }

 

//别忘了导入jqueryjs文件

这个代码贴出来有点恐怖啊:

import java.util.List;

 

import com.defu.service.Mainservice;

import com.defu.vo.Smalltype;

import com.opensymphony.xwork2.ActionSupport;

 

public class TypeActiveAction extends ActionSupport{

String bigtypeid;

 

public int getBigtypeid() {

       return Integer.parseInt(bigtypeid);

}

 

public void setBigtypeid(String bigtypeid) {

       this.bigtypeid = bigtypeid;

}

List smalltypelist;

 

public List getSmalltypelist() {

       return smalltypelist;

}

 

public void setSmalltypelist(List smalltypelist) {

       this.smalltypelist = smalltypelist;

}

 

@Override

public String execute() throws Exception {

    Mainservice service=new Mainservice();

       setSmalltypelist(service.getSmalltypes(this.getBigtypeid()));

       return SUCCESS;

}

 

}

红色字体的代码是从数据库中查出符合条件的数据然后存到smalltypelist中,只要smalltypelistget方法,在jsp页面就可以取到,是不是很方便啊,奥对了,struts会把内容封装为json格式的,说到这,还要考虑配置信息:

       <</span>package name="ajax" extends="json-default" namespace="/ajax">

              <</span>action name="changesmalltypetwo" class="com.defu.shopaction.TypeActiveAction">

                     <</span>result name="success" type="json"></</span>result>

        </</span>action>

 其他需要注意的,我用特殊颜色标出来了。注意就是了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值