不是要求采取行动( not calling action)

2019-10-16 23:12发布

我觉得这是一个非常简单的修复,但我难倒。 我一直在寻找一整天,但我的代码似乎匹配的工作实例。 我使用Struts + +用SpringMVC和Hibernate我在使用jQuery标记替换我的道场标签的过程。 jQuery的下拉列表不调用相关的动作。

下面是相关的代码:

在struts.xml

<action name="getListOfCities" class="cityActions">
        <result type="json">
            <param name="root">cities</param>
        </result>
</action>   

Page.jsp

<s:url id="cityList" action="getListOfCities"/>
     <sj:autocompleter name="cities" href="%{cityList}" list="cities" selectBox="true"/>

CityAction.java

public class CityActions implements ModelDriven<CityVO> {

CityService cityService;
private Map<String, String> cities = new HashMap<String, String>();
CityVO city = new CityVO();

public void setCityService(CityService cityService) {
    this.cityService = cityService;
}

public CityVO getModel(){
    return city;
}

public String execute() {
    return Action.SUCCESS;
}   

public String addCity(){
    try{
        cityService.addCity(city);
        return "SUCCESS";}
    catch(Exception e){
        return "ERROR";
    }catch(Throwable t){
        return "ERROR";
    }
}

public Map<String, String> getCities() {
    List<CityVO> cityList = cityService.listCities();

    Iterator<CityVO> iterator = cityList.iterator();
    while (iterator.hasNext()) {
        CityVO fac = iterator.next();
        cities.put(fac.getCityName(), Integer.toString(fac.getCityId()));
    }
    return cities;
}   

在下拉菜单中显示出来,但无人居住。 这是我有什么它工作得很好之前:

<s:url id="cityList" action="getListOfCities" />
<sx:autocompleter href="%{cityList}" name="cities" keyValue="0" value="---- SELECT ONE-----"/>

有没有人有一个解决的办法? 我已经取得了一定要加

<%@ taglib prefix="sj" uri="/struts-jquery-tags"%> 

并且里面的头:

<sj:head jqueryui="true"/>

谢谢。

Answer 1:

(太长了评论。拼凑起来的类似于您片段的东西不完整版本。)

首要的问题是,你的结果集rootcities ,这意味着返回的JSON没有cities关键,所以自动完成的list属性不知道从哪里得到它的数据。

这就是说: 一些时髦与selectBox在这个版本的功能; 当我删除属性我看到数据时,I型,它设置为true,我什么也没得到。

我不知道,不过,看选择的过滤,这意味着即使它正确高亮匹配字符,不被删除不匹配的条目; 我相信他们应该是。

无关,但为什么还要从创造VOS的地图吗? 除非我有一个体面的原因(例如, CityVO太大或包含敏感信息),只需使用listKeylistValue属性和使用什么服务已经返回。



文章来源: not calling action