Html 如何在jsp中使用自定义标记更改列表?

Html 如何在jsp中使用自定义标记更改列表?,html,ajax,jsp,append,custom-tag,Html,Ajax,Jsp,Append,Custom Tag,我在JSP中使用自定义标记时遇到了以下问题。 页面加载结束时由div自定义标记生成的html内容列表。 之后,我想用ajax的新数据替换列表。 首先,我清空了旧的列表。我制作了一个html字符串(pdListHtml),附加它。 但我根本无法得到任何新的列表。 如果代码有问题,请告诉我。 谢谢 html.jsp <ul class="pdImgType"> <c:forEach var="goods" items="${goods}"> &

我在JSP中使用自定义标记时遇到了以下问题。 页面加载结束时由div自定义标记生成的html内容列表。 之后,我想用ajax的新数据替换列表。 首先,我清空了旧的列表。我制作了一个html字符串(pdListHtml),附加它。 但我根本无法得到任何新的列表。
如果代码有问题,请告诉我。 谢谢

html.jsp

<ul class="pdImgType">
    <c:forEach var="goods" items="${goods}">    
        <div class="pdList">
            <pt:product prdNm="${goods.goods_name}" dispPrc="${goods.goods_origin_price }"/>
        </div>    
    </c:forEach>
</ul>
java中的控制台日志


ctgr结果mv:ModelAndView:materialized视图为[null];模型为{cateCntTot=0,cate=[],brand1List=[],delryList=[],total=1254,goods=[{goods\u name=nice,goods\u origin\u price=109000}]}

您需要使用
数据获取
goods
,然后在其上循环。另外,检查
json
是否有效

演示代码

//您的json响应
风险值数据={
“cateCntTot”:0,
“美食”:[],
“品牌列表”:[],
“delryList”:[],
“总数”:1 254,
“货物”:[{
“商品名称”:“不错”,
“货物原产地价格”:109000
}]
};
var pdListHtml=“”;
///获取数据->货物
var货物=数据货物;
for(设i=0;idispPrc:“+货物[i]。货物原产地价格+”
}
//在pdImgType类下添加数据
$(“.pdImgType”).html(pdListHtml)


您需要使用
数据获取
商品
。商品
,然后在其上循环。此外,检查您的
json
是否有效

演示代码

//您的json响应
风险值数据={
“cateCntTot”:0,
“美食”:[],
“品牌列表”:[],
“delryList”:[],
“总数”:1 254,
“货物”:[{
“商品名称”:“不错”,
“货物原产地价格”:109000
}]
};
var pdListHtml=“”;
///获取数据->货物
var货物=数据货物;
for(设i=0;idispPrc:“+货物[i]。货物原产地价格+”
}
//在pdImgType类下添加数据
$(“.pdImgType”).html(pdListHtml)


您能否在问题中添加
数据
输出?您好。@Swati。我在java中添加了数据和控制台日志。谢谢你的关注。我发现它只是添加了html而不是自定义标记运行。我怎样才能得到自定义标记结果而不仅仅是html?你能在你的问题中添加
数据
输出吗?嗨。@Swati。我在java中添加了数据和控制台日志。谢谢你的关注。我发现它只是添加了html而不是自定义标记运行。如何获得自定义标记结果而不仅仅是html?我非常感谢您的帮助。我发现如果我想应用html字符串,我需要在我的页面上重新加载。谢谢我非常感谢你的帮助。我发现如果我想应用html字符串,我需要在我的页面上重新加载。谢谢
const filterParam = $("#submitForm").serializeArray();

$.ajax({
    type : "post",
    url : "/ctgrSearchFilter.do",
    data : filterParam,
    dataType : "json",
    success : function(data) {               
        $(".pdImgType").empty();
        const goods = data.result.goods;        

        for(let i=0 ; i < goods.length ; i++){
            let pdListHtml = "";
            pdListHtml += '<div class=\"pdList\">';
            pdListHtml += '<pt\:product prdNm=\"'+ goods[i].goods_name +'\" dispPrc=\"'+ goods[i].goods_origin_price +'\"/>';
            pdListHtml += '</div>';
             $(".pdImgType").append(pdListHtml);
        }                
     },
     error : function(err) {
         alert("error");
     }
});
@RequestMapping(value = "/ctgrSearchFilter.do" , method = equestMethod.POST)
@ResponseBody
public JSONObject ctgrSrhFilter(HttpServletRequest request) throws Exception {
    JSONObject json = new JSONObject();
    ModelAndView mv = commSearchService.callSearchAllNewAPI(request); 
    logger.info(">>>> ctgr result mv : "+ mv);       
    json.put("result",  mv.getModel());

    return json;
}