//前台页面
<select class="selectpicker" name="title"style="width:150px;">
<option value="0">请选择 </option><c:forEach items="${fnc:getTitle()}" var="manager">
<option value="${manager.title}" >${manager.title}</option>
</c:forEach>
</select>
</select>
<select name="types" style="width:100px;">
<option value="0">请选择 </option>
<c:forEach items="${types}" var="type">
<option value="${type}">${type.caption}</option>
</c:forEach>
</select>
<input id="btnSubmit" class="btn btn-primary"type="submit" value="搜索" οnclick="return page();"/>
//业务逻辑类
public Page<Visa> find(Page<Visa> page, Visa visa,String classify,String types) {
DetachedCriteria dc = visaDao.createDetachedCriteria();
int i=CriteriaSpecification.LEFT_JOIN;
DetachedCriteria c=dc.createCriteria("productClassList",i);
//验证实体类字段不为空
if(classify!=null&&!classify.equals("0")){
c.add(Restrictions.like("id", Long.parseLong(classify)));
}
if(StringUtils.isNotBlank(visa.getTitle())&&!visa.getTitle().equals("0")){
dc.add(Restrictions.or(Restrictions.eq("title",visa.getTitle())));
}
if(visa.getStatus()>0){
if(visa.getStatus()!=15){
dc.add(Restrictions.eq("status",visa.getStatus()));
dc.add(Restrictions.eq("delFlag",Ticket.DEL_FLAG_NORMAL));
}else{
dc.add(Restrictions.eq("delFlag",Ticket.DEL_FLAG_DELETE));
}
}
if(visa.getStatus()==0){
dc.add(Restrictions.eq("status",BaseProduct.STATUS_NEW));
dc.add(Restrictions.eq("delFlag",Ticket.DEL_FLAG_NORMAL));
}
if(types!=null&&!types.equals("0")){
if(types.equals("Asia")){
dc.add(Restrictions.eq("type",VisaType.Asia));
}
if(types.equals("Europe")){
dc.add(Restrictions.eq("type",VisaType.Europe));
}
if(types.equals("America")){
dc.add(Restrictions.eq("type",VisaType.America));
}
if(types.equals("Africa")){
dc.add(Restrictions.eq("type",VisaType.Africa));
}if(types.equals("Australia")){
dc.add(Restrictions.eq("type",VisaType.Australia));
}
dc.add(Restrictions.eq("delFlag",Visa.DEL_FLAG_NORMAL));
}
dc.addOrder(Order.desc("id"));
return visaDao.find(page, dc);
}
//action类
public String list(Visa visa,String types,String classify, Integer status, HttpServletRequest request, HttpServletResponse response, Model model) {
User user = UserUtils.getUser();
if (!user.isAdmin()){
visa.setCreateBy(user);
}
if (status == null) {
status = 1;
}
Visa c=new Visa();
//从枚举中取出数组
VisaType[] t=c.getType().values();
visa.setStatus(status);
Page<Visa> page = visaService.find(new Page<Visa>(request, response), visa,classify,types);
model.addAttribute("types", t);
model.addAttribute("page", page);
model.addAttribute("t", types);
model.addAttribute("count",page.getCount());
model.addAttribute("classify", classify);
model.addAttribute("count",page.getCount());
if(visa.getStatus()==15){
model.addAttribute("del","15");
}
return "modules/pro/visaList";
}
//实体类
private static final long serialVersionUID = 1L;
private String code; // 编码
private String title; // 标题
private VisaType type; // 签证类型
private String keyword; // 关键字
private Area area; // 区域
private String feature; // 产品特色
private String residenceTime; // 停留时间
private String processTime; // 办理时长
private String handleRange; // 受理范围
private String expirationDate; // 有效期
private String interview; // 面试
private Integer entryNumber; // 入境次数
private BigDecimal marketPrice; // 市场价
private BigDecimal memberPrice; // 为为价
private String litPic; // 缩略图
private String picList; // 签证描述图
private String necessaryInfo; // 必需资料
private String handleProcess; // 办理流程
private String tips; // 温馨提示
private String refundInfo; // 退款说明
private Integer sortNo; // 序号
private Boolean display; // 显示/隐藏
private List<VisaOptionData> optionDataList = Lists.newArrayList(); // 选项资料列表
private List<ProductClass> productClassList = Lists.newArrayList(); // 产品分类列表
public enum VisaType {
Asia("亚洲签证"), Europe("欧洲签证"), America("美洲签证"), Africa("非洲签证"), Australia("澳洲签证");
private String caption;
public String getCaption() {
return caption;
}