有时候我们列表根据大标题和小标题及小标题下的文章的层级进行遍历。一次性获取的数据不能满足只遍历子标题下的文章会同时把大标题也遍历。这时候就需要我们用到集合数据类型,只遍历参数类型为集合的实体对象。
定义实体对象
private static final long serialVersionUID = -8715592713023165170L;
private String subjectClassifyId;
private String classifyName;
private String classifyIsShow;
private String classifyIsShowName;
private String classifyOrder;
private String subjectId;
List<CheckAdvice> adviceList;
后台封装集合参数
@RequestMapping(value = "/gateway/subDetail")
public String getSubDataDetailById(Model model, HttpServletRequest request, String dataId) {
List<SubjectMgtClassify> dataList = gateWayService.getSubjectClassfiyAndAdviceList(dataId);
model.addAttribute("PROFILELIST",dataList);
return pathffix + "/subArticle";
}
public List<SubjectMgtClassify> getSubjectClassfiyAndAdviceList(String dataId)
{
List<SubjectMgtClassify> subjectMgtClassify = getSubjectMgtClassify(dataId);
if(CollectionUtils.isEmpty(subjectMgtClassify))
{
return null;
}
for(SubjectMgtClassify subClass:subjectMgtClassify) {
List<CheckAdvice> adviceList = getAdviceByClassify(subClass.getSubjectClassifyId());
subClass.setAdviceList(adviceList);
}
return subjectMgtClassify;
}
<select id="getAdviceByClassify" parameterType="com.model.SubjectMgtClassify" resultType="com..model.CheckAdvice">
select b.CHECK_ADVICE_ID as adviceId,b.TITLE as title,cta.attachment_id from (select a.*
from PB_CHECK_ADVICE a
where a.CHECK_ADVICE_ID in
(select t.advice_id
from pb_classify_rel_advice t
where t.subject_classify_id = #{subjectClassifyId,jdbcType=VARCHAR}) and
a.is_work=1) b
left join ct_attachment cta on cta.entity_id = b.CHECK_ADVICE_ID and
cta.is_delete=0
</select>
前台分开遍历只遍历子标题下的文章
<div class="wrap main">
<div class="wraper zt">
<div class="cont">
<div class="tit">
<ul>
<li>导读</li>
</ul>
</div>
<div class="zt_con">
<p style="text-indext:2em;">
<#if HEADLIST??>
${HEADLIST.subjectBrief!''}
</#if>
<#if HEADLIST.attachmentId?exists>
<input id="headPicture" src="${rc.contextPath}/attach/download?attachmentId=${HEADLIST.attachmentId!''}" type="hidden">
</#if>
</p>
</div>
<#if PROFILELIST??&& PROFILELIST?size gt 0>
<#list PROFILELIST as profile>
<div class="tit">
<ul>
<li> ${profile.classifyName!''}</li>
</ul>
</div>
<#if profile.adviceList?? && ( profile.adviceList?size>0)>
<ul class="listTW">
<#list profile.adviceList as profileItem>
<li>
<#if profileItem.useLink?? && profileItem.useLink == '1' && profileItem.oriLink??>
<h2><a href="${profileItem.oriLink!''}" target="_blank">${profileItem.title!''}</a></h2>
<#else>
<h2><a href="${rc.contextPath}/detail?dataId=${profileItem.adviceId!''}" target="_blank">${profileItem.title!''}</a></h2>
</#if>
<#if profileItem.attachmentId?exists>
<img src="${rc.contextPath}/attach/download?attachmentId=${profileItem.attachmentId!''}">
</#if>
</li>
</#list>
</ul>
</#if>
</#list>
</#if>
</div>
</div>
</div>