项目中:语音导览添加相关展品 字段:relactiveExhibitItem 长度 varchar2000

<div class="control-group">
<label class="control-label">相关展品:</label>
<div class="controls">
<input type="button" value="选择" id="itemIds" onclick="selectExhibitItem(this.id)" />
<div id="exhibitItemDiv" class="box" style="width:100%;font-size:14px;" >
<form:input type="hidden" id="itemIds_input" path="relactiveexhibititem" />
//由于实际字段值为:["90c720bc42b441328aae901a1f140bae","cafeab8fc5cd492698e9a5cbf39ebc87"],所以隐藏不显示             <form:input type="hidden" id="itemIds_name" path="relactiveexhibititemName" />
<ol id="itemIds_ol"></ol>
<script type="text/javascript">
// 相关作品的id集合
var itemIdList = ${hmlwxGuideVoices.relactiveexhibititem};
//
var itemNameList = '${hmlwxGuideVoices.relactiveexhibititemName}'.split(",");
if(itemIdList && itemIdList.length>0){

//为了动态的追加显示label
for(var i=0;i<itemIdList.length;i++){
var id=itemIdList[i];
var name = itemNameList[i];
var itemli = "<li id=itemIds_"+id+"><label style=\"max-width:100px;max-height:20px;_height:100px;border:0;padding:3px;\"/>"+name+"&nbsp;&nbsp;<a href=\"javascript:\" onclick=\"removeItems('itemIds_"+id+"','"+name+"');\">×</a></li>";
var $img = $(itemli);
$("#itemIds_ol").append($img);
}
}
</script>
</div>
</div>
</div>
//选择展品
function selectExhibitItem(id){
top.$.jBox.open("iframe:${ctx}/hmlwx/hmlwxExhibitItem/selectList","选择关联展品", 1000, 500, {
buttons:{"确定":"ok","关闭":"true"},
submit:function(v, h, f){
if (v=="ok"){
              //获取被选中的options 的标签
var chkItem = top.$("#jbox-iframe").contents().find('input:checkbox[name=chkItem]:checked');
var resIds="",resNames="";
var itemValue = $("#"+id+"_input").val();
alert("itemValue"+ itemValue);
var nameValue = $("#"+id+"_name").val();
alert("nameValue:"+ nameValue);
var isSelect = false;
chkItem.each(function (i) {
//alert($(this).val());
var idTemp = $(this).val();
alert("idTemp:"+ idTemp);
var nameTemp = $(this).parent().next().text();
alert("nameTemp:"+ nameTemp);
if(itemValue.indexOf(idTemp) == -1 ){
nameTemp = nameTemp.replace('\\s','').trim();
var itemli = "<li id=itemIds_"+idTemp+"><label style=\"max-width:100px;max-height:20px;_height:100px;border:0;padding:3px;\"/>"+nameTemp+"&nbsp;&nbsp;<a href=\"javascript:\" onclick=\"removeItems('itemIds_"+idTemp+"','"+nameTemp+"');\">×</a></li>";
var $img = $(itemli);
$("#itemIds_ol").append($img); if(itemValue =='[]' || itemValue=='')
itemValue = "[\""+idTemp+"\"]";
else
itemValue = itemValue.replace(",]",",\""+idTemp+"\"]").replace("]",",\""+idTemp+"\"]"); $("#"+id+"_input").val(itemValue);
if (nameValue == '' || (nameValue != '' && nameValue.indexOf(nameValue.length -1, nameValue.length)) == ",") {
nameValue += nameTemp;
} else {
nameValue += "," + nameTemp;
}
$("#"+id+"_name").val(nameValue);
resIds += "\"" + idTemp+"\",";
}
isSelect = true;
}); if(isSelect || (resIds!=null&&resIds.length>0)){
//转成json字符串
//$("#"+id+"_input").val("["+resIds.substr(0,resIds.length-1)+"]");
//$("#"+id+"_name").val(resNames.substr(0,resIds.length-1));
}else{
top.$.jBox.alert("未选择关联展品");
return false;
} }
}, loaded:function(h){
$(".jbox-content", top.document).css("overflow-y","hidden");
}
});
}

选择展品的jsp

<c:forEach items="${page.list}" var="hmlwxExhibitItem">
<tr>
<td><input type="checkbox" name="chkItem" value='${hmlwxExhibitItem.id}' class="select"/></td>
<td><a name="itemName" href="${ctx}/hmlwx/hmlwxExhibitItem/form?id=${hmlwxExhibitItem.id}&view=0">
${hmlwxExhibitItem.name}
</a></td>
<td>
${hmlwxExhibitItem.creationDate}
</td>
<td>
${hmlwxExhibitItem.spec}
</td>
<td>
${hmlwxExhibitItem.descr}
</td>
<td>
${hmlwxExhibitItem.createBy.name}
</td>
<td>
<fmt:formatDate value="${hmlwxExhibitItem.createDate}" pattern="yyyy-MM-dd"/>
</td>
</tr>
</c:forEach>

再看后台的controller中保存的方法、

@RequiresPermissions("hmlwx:hmlwxGuideVoices:view")
    @RequestMapping(value = "form")
    public String form(HmlwxGuideVoices hmlwxGuideVoices, Model model) {
        HmlwxGuideVoicesDTO hmlwxGuideVoicesDTO = new HmlwxGuideVoicesDTO();//扩展类 新增字段为关联作品的 名称集合字段         try {
            BeanUtils.copyProperties(hmlwxGuideVoicesDTO, hmlwxGuideVoices);
//对象的复制 把hmlwxGuideVoices 复制到 hmlwxGuideVoicesDTO 里
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        // 查找展品相关数据
//判断 关联作品字段中是否有值
        if (StringUtils.isNotEmpty(hmlwxGuideVoices.getRelactiveexhibititem())
                && !StringUtils.equals(hmlwxGuideVoices.getRelactiveexhibititem(), "[]")) {
//若有值先转化为json对象            
JSONArray json = JSONArray.fromObject(hmlwxGuideVoices.getRelactiveexhibititem());
            String name = "";
            if (json.size() > 0) {
//根据作品 id 找到 Name 并 拼接成一个字符转 以,分隔
                for (int i = 0; i < json.size(); i++) {
                    HmlwxExhibitItem hmlwxExhibitItem = hmlwxExhibitItemService.get(json.getString(i));
                    name += hmlwxExhibitItem.getName() + ",";
                }
            }
            if (StringUtils.isNotEmpty(name)) {
//切掉最后一个,
                name = name.substring(0, name.length() - 1);
            }
            hmlwxGuideVoicesDTO.setRelactiveexhibititemName(name);
        }
        // 查找展厅相关数据
        if (StringUtils.isNotEmpty(hmlwxGuideVoices.getExhibitionRoomId())
                && !StringUtils.equals(hmlwxGuideVoices.getExhibitionRoomId(), "[]")) {
            String id = hmlwxGuideVoices.getExhibitionRoomId().replaceAll("\"", "").replace("[", "").replace("]", "");
            // 只有一个展厅
            HmlwxExhibitionRoom hmlwxExhibitionRoom = hmlwxExhibitionRoomService.get(id);
            hmlwxGuideVoicesDTO.setExhibitionRoomName(hmlwxExhibitionRoom.getName());
        }         model.addAttribute("hmlwxGuideVoices", hmlwxGuideVoicesDTO);
        return "modules/hmlwx/hmlwxGuideVoicesForm";
  

实现添加相关资源的弹出ifreame 并实现多选框的更多相关文章

  1. 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...

  2. VS2010添加类失败问题,弹出错误框,提示 CodeModel操作失败,无法访问标记数据库

    我在使用VS2010添加类的时候,会弹出一个错误框,提示 CodeModel操作失败,可以无法访问标记数据库 英文版是 CodeModel operation failed,Possibly cann ...

  3. android 长按弹出菜单,复制,粘贴,全选

    <!-- 定义基础布局LinearLayout --> <LinearLayout xmlns:android="http://schemas.android.com/ap ...

  4. WPF弹出带蒙板的消息框

    效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 /// <summary> /// 弹出 ...

  5. javascript弹出带文字信息的提示框效果

    // position of the tooltip relative to the mouse in pixel // <html><head><meta charse ...

  6. ViewController添加子控制器 并且弹出

    /** *  初始化子控制器 */ - (void)setupChildVcs { for (int i = 0; i<6; i++) { UIViewController *vc = [[UI ...

  7. js手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法

    if(window.navigator.userAgent.indexOf('Android') > -1 || window.navigator.userAgent.indexOf('Adr' ...

  8. myeclipse经常弹出Subversion Native Library Not Available框解决办法

    两种解决方案:(1)在myeclipse中选择 "Windows" -> Perferences. 然后通过左上方的筛选,选出svn设置菜单,点解左侧的"SVN&q ...

  9. 安卓弹出对话框——Alertdialog

    在Android开发当中,在界面上弹出一个Dialog对话框使我们经常需要做的,本篇随笔将详细的讲解Dialog对话框这个概念,包括定义不同样式的对话框. 一.Dialog 我们首先来看看androi ...

随机推荐

  1. sublime text 3设置

    Sublime text 3 中文文件名显示方框怎么解决? 如图,中文文件名打开全是乱码,内容倒是装了converttoutf8没什么太大的问题. 作者:凝空虚步链接:https://www.zhih ...

  2. ImageIO类说明

    最近的项目中遇到ImageIO,因此记录下这个类的用法 一.ImageIO: 这个类中的方法都是静态方法,可以用来进行简单的图片IO操作 1.读入的三种方法 public static Buffere ...

  3. SpringBoot导入导出Excel到Mysql

    2018.11.11 10:44:52字数 96阅读 1320 一.包的引用 除了引用SpringBoot基本包之外,还需要引入对Excel操作的包,如下: <dependency> &l ...

  4. C++入门经典-例3.5-判断某一年是否是闰年之嵌套判断

    1:代码如下: // 3.5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> using ...

  5. Zookeeper(二)数据模型

    Zookeeper数据模型ZNode 问题 ZK的数据模型ZNodes是什么样的: 树形结构,每个叶子节点都存储着数据,且可挂载子节点: 路径作为叶子节点名称,数据作为叶子节点内的数据: Znode可 ...

  6. How to solve the error "Field service in com.xx.xxx.xxxx required a bean of type 'com.aa.bb.cc' that could not be found."

    When runung a SpringBoot demo, I  got a error as following: *************************** APPLICATION ...

  7. 阶段3 2.Spring_03.Spring的 IOC 和 DI_10 构造函数注入

    在AccountServiceImpl内定义三个属性 这里关注点是这几种类型.基本类型的包装类Integer 还有String类型,也包含了其他bean类型.Date 定义构造函数并赋值 重点关注在数 ...

  8. asp.net mvc 依赖注入Ninject

    1.安装Ninject 2.使用Ninject 一 安装Ninject Nuget:Ninject 二 使用Ninject public interface IStudent { string Get ...

  9. dapper 分页根据时间条件查询时中的一个坑

    当数据库中数据很多的时候,这样写,查询速度会很慢. db.Query<AuditLogModel>(queryStr, searchModel);// 应该这样写 var logDatas ...

  10. fcitx无法切换到中文(manjaro)

    安装fcitx后不能切换到中文输入法,在.bashrc或者.profile中添加以下代码: #fcitx export GTK_IM_MODULE=fcitx  export QT_IM_MODULE ...