[jeeplus] 使用笔记 (gridSelect、datetimepicker etc.)

本贴最后更新于 2008 天前,其中的信息可能已经时过境迁

1.创建表单时,grid 选择框中给对应的字段做设置

image.png

image.png

2.生成代码后的 jsp 页面中查看检查。

image.png

image.png

3.最终展示:

image.png

image.png

1 操作
PeterChu 在 2019-05-24 14:59:26 更新了该帖

相关帖子

优质回帖
  • 88250 1

    现在回帖还没有纳入搜索系统,过段时间会把回帖也纳入进去,这样就好找了 🙏

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • PeterChu
    作者

    gridselect 多选单选问题:
    image.png

  • PeterChu
    作者

    补充:表单生成中设置
    image.png

  • PeterChu
    作者

    Recognize when is the app first launched WP8 | 易学教程

    下面是以配置清单列表中的增、改表单中的后期加上去的 gridSelect 选择框为例,简单说一下加的流程。

    1530189580262311.png

    //示例代码片段  
    <sys:gridselect id="proManage"  //对象名(可以随便取) 
    	url="${ctx}/pro/proManage/data"  //gridselect选择框请求数据的url 
    	name="proManage.id"  //gridselect弹出框选择数据后将 对象名.属性(java属性)的值,替换掉from表单中隐藏input框中的要提交的关联属性(我这里是项目id)  
    	value="${proManage.id}"  //回显隐藏from表单input中的要提交的关联属性值 
    	labelName="proManage.name"  //选择gridselect框中的数据后,会将该 对象名.属性(Java属性) 的值在form表单中的显示的input框中回显 
    	labelValue="${proManage.name}"  //打开窗口后回显该 对象名.属性名到form表单中 
    	title="选择项目"  //弹出框的title 
    	cssClass="form-control required"  //样式 
    	fieldLabels="项目编号|项目名称"  //gridselect框中表格的列名称 fieldKeys="proCd|name"  //gridselect框中表格对应的列要显示的那个字段的值(java属性) 
    	searchLabels="项目编号|项目名称"  //gridselect框中查询框前的文本值 
    	searchKeys="proCd|name"  >  //gridselect框中根据该字段查询数据(查询规则在 代码生成器的表单规则内设置的是保持一致的)  
    </sys:gridselect>
    

    具体属性解释
    1530189580560208.png

    下面试大致过一下框架对这个标签的执行流程,具体的需要自己去看和理解,我粗略的注释一下

    <sys:gridselect 这里使用的jsp的自定义标签,这个标签在jeeplus的如下目录中。
    

    sys 自定义标签的位置如下
    1530189580660154.png

    这里要看的是 gridselect.tag 标签的执行流程。

    1.解析 tag 自定义标签
    1530189581933856.png

    2.跳转自定义标签后台,它跳到了 modules/common/gridselect 页面

    1530189581857992.png

    3.gridselect.jsp 页面

    1530189581131720.png

    4.它自定义标签的执行过程看懂了就很容易理解各个属性的含义是做什么,有什么不懂可以再相互讨论

  • PeterChu
    作者

    QQ 图片 20190514154645.png

    主附表的页面中的如果某个字段用了字典,那么页面上该怎么显示该字段呢。
    自动生成的页面的 Js 代码这块直接是 {{dict.name}},dict 没见到哪里定义、或者调用了字典,数据库中当然存的是字典的 value,而不是 name ;
    我之前的解决办法都是,存储的时候,直接存字典的 name 到数据库表中,这里显示的时候,就用 {row.name},怎么用其他方法呢


    2019-6-13 15:50:51
    找到解决办法:

    原因:js 中未对使用了字典的字段做处理。在 2.41 新版本中发现此处 js 中有处理方法。

    function detailFormatter(index, row) {
    	  var htmltpl =  $("#volunteerChildrenTpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
    	  var html = Mustache.render(htmltpl, {
    			idx:row.id
    		});
    	  $.get("${ctx}/volunteer/volunteerconfig/volunteer/detail?id="+row.id, function(volunteer){
        	  var volunteerChild1RowIdx = 0, volunteerChild1Tpl = $("#volunteerChild1Tpl").html().replace(/(\/\/\<!\-\-)|(\/\/\-\->)/g,"");
    		var data1 =  volunteer.volunteerConfigList;
    		for (var i=0; i<data1.length; i++){
    
                data1[i].dict = {};
                data1[i].dict.name = jp.getDictLabel(${fns:toJson(fns:getDictList('school_batches'))}, data1[i].name, "-");
    
    			addRow('#volunteerChild-'+row.id+'-1-List', volunteerChild1RowIdx, volunteerChild1Tpl, data1[i]);
    			volunteerChild1RowIdx = volunteerChild1RowIdx + 1;
    		}
    	
          })
            return html;
        }
    

    这样之后,下面

    <script type="text/template" id="volunteerChild1Tpl">
    				<tr>
    
    					<td>
                                                     {{row.dict.name}}
    					</td>
    					<td>
    						{{row.vindex}}
    					</td>
    					<td>
    						{{row.isArt}}
    					</td>
    					<td>
    						{{row.isAdvance}}
    					</td>
    					<td>
    						{{row.reportedStart}}
    					</td>
    					<td>
    						{{row.reportedEnd}}
    					</td>
    					<td>
    						{{row.raiseStart}}
    					</td>
    					<td>
    						{{row.raiseEnd}}
    					</td>
    					<td>
    						{{row.enrollStart}}
    					</td>
    					<td>
    						{{row.enrollEnd}}
    					</td>
    				</tr>
    	</script>
    

    中就可以直接使用 {{row.dict.name}},这样,页面中主附表的附表内该字段就会正常显示了。

    1 操作
    PeterChu 在 2019-06-13 15:55:15 更新了该回帖
  • PeterChu 3 评论
    作者

    QQ 图片 20190514154920.jpg
    QQ 图片 20190514154932.png
    QQ 图片 20190514154937.png
    这个 gridselect 选择框怎么选择一个确认后,总是不能回填到 input 显示出来呢,但是值确实拿到了且能传给后端保存,完了还能在列表处显示出来。
    问下是我这个 tag 里 labelName 和 labelValue 或者啥的没配置对吗?
    还是因为这个标签不支持  :obga.obgb.obgc.name 这种呢

    嗨还是这个问题,看来是记录了
    PeterChu
    ok,知道哪里的问题了,见 2019-5-16 14:56:10 回复
    PeterChu
    emmm....有没有必要添加个楼层号呢?
    PeterChu
  • PeterChu
    作者

    另一家 justep 的产品中同样使用了 gridselect,其文档:
    http://doc.wex5.com/comps-gridselect/

  • PeterChu
    作者

    我还是开放显示吧,没啥东西

  • PeterChu
    作者

    某个 form.jsp 页面中需要用 gridselect 显示某个嵌套多层的一个对象的属性,在 jsp 中该字段的 gridselect 标签内的 lablename 中写 useraccount.user.name(不带元对象),此时当确定选择后,被选择的记录的该字段应该要显示到此处 input 内,
    image.png但是,前提是 gridselect 组件打开的 form 中的数据记录里必须包含该字段的值对应的 mapper 映射文件中查询 userAccountLogColumns 对应中应该包含该字段,且 userAccountLogJoins 中配置好关联表关系,
    image.png

    这样就可以在 list 页面和 form 页面中正常显示,正常选择确认字段了。

  • PeterChu
    作者

    2019-5-16 15:11:27
    日期时间控件问题:
    在 form.jsp 页面中仅粘贴时间控件的 html 代码是不能够起作用的,可能还需要引入相关 js
    eg:
    image.png

  • PeterChu
    作者

    列表、form 的 jsp 页面中的时间格式问题:

    QQ 图片 20190523175048.png

    没改啥地方啊,为啥这个字段显示成时间戳了奇了怪了!大概知道会有啥地方影响这个吗

    你没格式化

    在里有哪块格式化

    js,类,数据库,都看一下

    哦我看看

    QQ 图片 20190523175045.png

    找到问题了,是我实体类中没加这个 @JSON 格式化时间的注解。这个字段应该生成的时候是 String,手动改为 Date 类型的

  • PeterChu
    作者

    配置 gridSelect 字段时需要注意以下地方配置:
    QQ 截图 20190524111611.png
    QQ 截图 20190524111544.png

  • PeterChu
    作者

    时间格式处理:
    默认使用时间格式字段时,list.jsp、form.jsp 页面中该字段时间格式都设置为:format: "YYYY-MM-DD HH:mm:ss"
    若只需要年份,暂时采用的办法是将实体类中该字段类型设置为 String,数据库(MySql)中该字段类型设置为 varchar 后,
    在 list.jsp 中引用的 js 代码中image.png
    此处设置为 format: "YYYY"
    form.jsp 中同样处理方法:
    image.png

    设置完成后,则会显示为:
    image.png

  • PeterChu
    作者

    QQ 图片 20190524182606.png
    QQ 图片 20190524182602.png

    java 中关联属性写的太长了!😂
    想知道最长可以写多少?

  • visus

    刘亦菲

  • PeterChu
    作者

    sql 之 left join 后有多个条件时应该怎么写才能正确的显示出想要的结果呢?

    image.png

    LEFT JOIN m_rank majorrank ON (majorrank.majorid = emcode.levelformajorsid AND majorrank.universityid = emcode.universityid)

  • PeterChu 1 评论
    作者

    微信截图 20190529155230.png

    答案:gridselect 给该字段传的值是 gridselect 查询出来的对象的 id,回显时回显的是同样的对象的同一个属性字段。图片中此处该字段的对象类型和 gridselect 查询出来的对象不是同一个类型,会出现回显时显示的是 gridselect 对象的同属性名的属性字段值。暂解决办法为:更换 gridselect 选择器中的对象与该字段对象相同,暂未找到 2 者不同类时的解决办法(不重要)。
    PeterChu
  • PeterChu
    作者

    怎么让主附表中的附表也打开横向滚动条?
    QQ 图片 20190529175245.png
    用 CSS 样式控制显示出来吗?尝试一下

    
        <style>
            .tab-content{
                overflow-x: scroll;
                width: 3000px;
            }
        </style>
    

    添加该样式后显示不正确。
    暂且在 list.jsp 中添加:

        <style>
            .tabs-container .tab-content > .active,
            .tabs-container .pill-content > .active {
                display: block;
                overflow-x: auto;
                width: 3000px;
            }
        </style>
    
  • PeterChu
    作者

    QQ 图片 20190530144629.png
    命名不规范,码农两行泪!!!😭
    自己把自己坑哭

  • PeterChu 1 评论
    作者

    image.png
    回填信息显示问题:
    原因可能是 xml 中对应字段配置不正确时,则会导致 gridselect 选择某条记录确认后,但是数据不能回填到文本框中。
    解决办法:
    1.保证 labelname 和 labelValue 中的值正确;
    2.保证 xml 中查询关联字段对应的 gridselect 相对应的正确。

    另外,发现此处的回显只能显示 一个对象中的直接字段的值,不能显示 一个对象中的对象中的字段的值。
    PeterChu
  • PeterChu
    作者

    java.sql.SQLException: Connection is read-only. Queries leading to data modification are not allowed

    解决方法:事务配置在 service 层,但是你的 service 层的方法是 query 开头的,service 调用的 query 方法根本就没有事务。你的配置文件下面是不是还有关于 query*的配置成了 read-only?修改你 service 方法的开头变成不是 read-only 的那种配置,如 clear 开头。(在 query 方法名(read_only)里面执行了 update 操作,所以就报错了。)

        //删除转化出现异常时已经插入的数据记录
        @Transactional(readOnly = false)
        public void deleteERecord(LevelForMajors levelForMajors){
            mapper.deleteERecord(levelForMajors);
        }
    
  • PeterChu
    作者

    功能需求分析 --> 业务逻辑 --> 数据逻辑 --> 编码逻辑 --> 编码实现 --> 功能实现

    参考:

    https://blog.csdn.net/bug1169719896/article/details/81662328

    业务逻辑和功能需求表

    葡萄藤PPT

    1 操作
    PeterChu 在 2019-06-11 16:52:07 更新了该回帖
  • PeterChu
    作者

    MySql 中根据 判断某个字段(字符串)的长度后 按不同情况更新 同一个字段的值 的方法:

    UPDATE m_levelformajor 
    
    SET type = (
    	CASE
    		WHEN 1 < LENGTH(number) AND  LENGTH(number) < 3 THEN "2"
    		WHEN 3 < LENGTH(number) AND  LENGTH(number) < 5 THEN "3"
    		WHEN 6 <= LENGTH(number) THEN "4"
    		WHEN number IS NULL THEN "1"
    	ELSE
    		"1"
    	END
    )
    
    UPDATE m_levelformajor 
    SET type = (
    	CASE
    
    		WHEN number IS NULL THEN "1"
    	ELSE
    		 "1"
    	END
    )
    
    SELECT id,name, number, type, parent_id,parent_ids , LENGTH(number) FROM m_levelformajor
    SELECT id,name, number, type, parent_id,parent_ids , LENGTH(number) FROM m_levelformajor WHERE  LENGTH(number) <5 AND  LENGTH(number) > 3
    SELECT id,name, number, type, parent_id,parent_ids , LENGTH(number) FROM m_levelformajor WHERE  1 < LENGTH(number)  AND  LENGTH(number) <3
    SELECT id,name, number, type, parent_id,parent_ids , LENGTH(number) FROM m_levelformajor WHERE   LENGTH(number) <1``` 
    
  • PeterChu
    作者

    根据某列中的值是否包含某个字符串筛选记录:

    UPDATE m_levelformajor 
    SET type = (
    	CASE
    		WHEN 1 < LENGTH(number) AND  LENGTH(number) < 3 THEN "22"
    		WHEN 3 < LENGTH(number) AND  LENGTH(number) < 5 THEN "23"
    		WHEN 6 <= LENGTH(number) THEN "24"
    		WHEN number IS NULL THEN "21"
    	ELSE
    		"1"
    	END
    )
    WHERE find_in_set('19db900b7129468385d96f96cd6c672a', parent_ids);
    
    --设置本科专业记录的 type
    UPDATE m_levelformajor 
    SET type = (
    	CASE
    		WHEN 1 < LENGTH(number) AND  LENGTH(number) < 3 THEN "12"
    		WHEN 3 < LENGTH(number) AND  LENGTH(number) < 5 THEN "13"
    		WHEN 6 <= LENGTH(number) THEN "14"
    		WHEN number IS NULL THEN "11"
    	ELSE
    		"1"
    	END
    )
    WHERE find_in_set('e131fdeaf3f041b086bec4e68dd096c7', parent_ids);``` 
    
  • PeterChu
    作者

    MySql 中的 null

            SELECT
            <include refid="EucodeColumns"/>
            FROM e_uecode a
            <include refid="EucodeJoins"/>
            WHERE
    	     a. YEAR = "2018"
             AND a.wltype = "理科"
             AND a.schoolbatches = "7"
             AND (a.r3 != "2" OR  ISNULL(a.r3))
             AND (a.r3 != "3"  OR  ISNULL(a.r3))
    

    如果表中某列中的值默认为 null,那么查询时 如果 where 子句中有使用该字段做筛选,那么是不是会自动筛选掉该列值为 null 的记录啊?

    处理方式:

    筛选条件中增加对 null 的判断处理。

  • PeterChu 2 评论
    作者

    问题:jeeplus 中想实现下拉多选功能要怎么实现?

    从字典取数据:

     <td class="active"><label class="pull-right">类型:</label></td>  
     <td>  
     <form:select path="employee.employeeType" class="form-control">  
         <form:options items="${fns:getDictList('employee_type')}" itemLabel="label"  itemValue="value" htmlEscape="false"/>  
         </form:select>  
    </td>
    

    这个是字典多选。
    这个是查询数据库的
    QQ 图片 20190626151006.png

    要在多选框中搜索的话 可以使用 select2 插件。

    大佬的回答,做下笔记。
    PeterChu
  • PeterChu
    作者

    从数据库导入项目中的表然后生成的模块后,这模块的 list.jsp 页面会报错:

    QQ 图片 20190626151247.png
    QQ 图片 20190626151252.png

    解决办法:手动在 方法中为 Model 添加一个 对象。

    QQ 图片 20190626151424.png

  • PeterChu 1 评论
    作者

    😑 这个页面使用关键词:jeeplus 使用笔记 搜索,已经在百度里排第一了。
    emmm....这里代码会不会暴露东西太多了,有风险不

    谷歌也在首页前五左右
    PeterChu
  • PeterChu
    作者

    慎用 select *

    当自己手写一些 sql 时,如果查找的对象/表中有封装了其他对象,那么,当 sql 中有 select * 时会导致封装对象为 Null 的现象。
    因此,如果有会使用到封装的对象,那么 xml 中的 sql 还是加上映射关系吧。
    eg:

        <!-- 根据年份、省份、高校、文理科、批次查找记录 findListByYPNWB -->
        <select id="findListByYPNWB" resultType="Eucode" >
            SELECT
            <include refid="EucodeColumns"/>
            FROM e_uecode a
            <include refid="EucodeJoins"/>
            WHERE a.year = #{year} AND a.province = #{province.id} AND a.universityid = #{university.id} AND a.wltype = #{wltype} AND a.schoolbatches = #{schoolBatches} AND (a.r3 != "2" OR  ISNULL(a.r3)) AND (a.r3 != "3"  OR  ISNULL(a.r3))
        </select>
    
  • PeterChu
    作者

    f........
    我感觉我有必要把这个帖子整理一下。
    分开成多个帖子好了,每个问题一个帖子,题目来说明问题的主要内容,这样便于查看啊。自己找个东西都得看半天。

    1 回复
  • 88250 1

    现在回帖还没有纳入搜索系统,过段时间会把回帖也纳入进去,这样就好找了 🙏

    1 回复
  • PeterChu
    作者

    还好还好,主要是我这回复的太多太乱了。

  • PeterChu
    作者

    关联查询中如果使用了 如下注释中的关联,则会造成查询花费时间很长。 1.38s --> 0.014s

    LEFT JOIN m_rank majorrank ON majorrank.id = a.majorrankid
    -- (
    -- 	majorrank.majorid = emcode.levelformajorsid
    -- 	AND majorrank.universityid = emcode.universityid
    -- )
    
  • PeterChu
    作者

    SSM 中 MyBatis 的某个 xxxMapper.xml 中,是否可以这样写?

                <if test="planMajorName != null and  planMajorName != '' and r1 = '0'">
                    AND a.planmajorname = #{planMajorName}
                </if>
                <if test="planMajorName != null and  planMajorName != '' and (r1 = null or r1 = '')">
                    AND a.planmajorname LIKE
                    <if test="dbName == 'oracle'">'%'||#{planMajorName}||'%'</if>
                    <if test="dbName == 'mssql'">'%'+#{planMajorName}+'%'</if>
                    <if test="dbName == 'mysql'">concat('%',#{planMajorName},'%')</if>
                </if>
    
  • PeterChu 1 评论
    作者

    IDEA 中怎么可以查看某个类被哪些类引用了?
    就是哪些类中使用了该类做属性,包含着该类?
    ctrl+alt+u 只能查看该类 继承、实现 了哪些类 ?
    emmm.....应该怎么讲呢?

    好了,暂时解决办法:在实体类上 AIT+ F7 可以查找到所有引用该类的地方。
    PeterChu
  • PeterChu
    作者

    image.png

    Mysql 这个 Cascade 在更新了主表的关联字段如 user 表中 id 可以更新附表中的关联字段,比如 附表中的 userid 吗?
    有没有一种方法,可以只设置 1 个 字段为外键后,其他几个字段作为同步关联字段,比如 主表 user 表中 id, name, age ,sex 将 id 设置为外键关联附表的 userid 后,同时附表中也包含了 username , userage, 能否不再设置其他外键情况下,实现更新主表中的 id,name,同步更新附表中的 userid, username 呢?
    还是必须再为 name --> username 做一个外键关联一下?

  • PeterChu
    作者

    jstree 中怎么设置展开的层级啊?

  • PeterChu 1 评论
    作者

    Jeeplus 的树形结构表,在 List.jsp 展示中的问题:某个字段使用字典后,需要在 js 中进行转化。

    eg:可以参考 area.js
    image.png

    image.png

    gridselect 选择器中,展示的某个字段如果使用了字典,该如何显示?还是直接先将获取的 data 的数据中该字段使用字典工具的方法赋值之后再返回给页面?
    PeterChu
  • PeterChu 1 评论
    作者

    Mysql 中对一个表中的字段进行汇总计算后 赋值给 其中一个字段

    如:招生计划表中,按照年份、省份、批次、文理科、学校 分组汇总后,将各专业招生计划数汇总后,赋值给该校该年度该批次该省份该文理科中的 招生计划总数。

    查询语句:

    
    SELECT
    	COUNT(zhaoshengjihua) AS jihuazongshu,
    	zhaoshengjihuazongshu,
    	shengfen,
    	nianfen,
    	wenlike,
    	pici,
    	daxuedaima,
    	daxuemingcheng
    FROM
    	d_zhaoshengjihuabiao
    GROUP BY
    	shengfen,
    	nianfen,
    	wenlike,
    	pici,
    	daxuedaima;
    
    

    image.png
    *zhaoshengjihuazongshu 字段中已经被赋值了,原来该字段中的值为空

    最开始写出的 sql 如下,但是完全不正确。

    
    
    UPDATE d_zhaoshengjihuabiao a
    SET a.zhaoshengjihuazongshu = (
    	SELECT
    		COUNT(b.zhaoshengjihua) AS b.cou,
    		b.shengfen,
    		b.nianfen,
    		b.wenlike,
    		b.pici,
    		b.daxuedaima
    	FROM
    		d_zhaoshengjihuabiao b
    	GROUP BY
    		b.shengfen,
    		b.nianfen,
    		b.wenlike,
    		b.pici,
    		b.daxuedaima
    )
    WHERE
    	b.shengfen = a.shengfen
    AND b.nianfen = a.nianfen
    AND b.wenlike = a.wenlike
    AND b.pici = a.pici
    AND b.daxuedaima = a.daxuedaima
    

    在网上搜索后,看到如下 2 条 sql 做为参考:

    -- 1
    UPDATE au_window_re_project aw
    SET aw.project_name = (
    	SELECT
    		ap.SERVICENAME
    	FROM
    		apas_service ap
    	WHERE
    		ap.unid = aw.PROJECT_ID
    )
    
    -- 2
    UPDATE test_user_points AS a
    LEFT JOIN (
    	SELECT
    		user_id,
    		sum(point) AS point_count
    	FROM
    		test_point_log
    	GROUP BY
    		user_id
    ) AS b ON a.user_id = b.user_id
    SET a.point_count = b.point_count
    

    最终参考第 2 条 SQL 写出如下语句,可以实现要求:

    
    UPDATE d_zhaoshengjihuabiao AS a
    LEFT JOIN (
    	SELECT
    		COUNT(zhaoshengjihua) AS cou,
    		shengfen,
    		nianfen,
    		wenlike,
    		pici,
    		daxuedaima
    	FROM
    		d_zhaoshengjihuabiao
    	GROUP BY
    		shengfen,
    		nianfen,
    		wenlike,
    		pici,
    		daxuedaima
    ) AS b ON (
    	a.shengfen = b.shengfen
    	AND a.wenlike = b.wenlike
    	AND a.nianfen = b.nianfen
    	AND a.pici = b.pici
    	AND a.daxuedaima = b.daxuedaima
    )
    SET a.zhaoshengjihuazongshu = b.cou ;
    
    最开始的 SQL 还不知道错在了哪里,应该是用子查询实现的呀
    PeterChu
  • PeterChu
    作者

    为 jp 工具添加自定义方法,实现 js 的 unicode 编码

    在 jeeplus.js 中的添加方法

    (function(){
    	jp = {
    
    	        /** 实现 unicode 编码 */
    	        toUnicode : function (s) {
    	            var str = "";
    	            for (var i = 0; i < s.length; i++) {
    	                str +="\\u"+('0000' + s.charCodeAt(i).toString(16)).slice(-4)+"";
    	            }
    	            return str;
    	        },	
    	}
    })(jQuery);
    

    实现效果:
    image.png

    需要注意的是:"\u0061\u0062\u0063" 中间需要转义字符:
    "\\u0061\\u0062\\u0063"

  • PeterChu
    作者

    java 中 字符串的 slipt() 方法

    1. slipt() 方法会在分割完成后,对获取到的数组从末端开始验证是否为"",若 true 则,数组长度 -1 ,直到遇到一个不为"" 的元素。
    2. 此时,在这个不为 "" 的元素之前的所有其他 "" 元素依旧保留。(未验证数组起始端的 "" 是否验证排除)
    3. 不知道从 1.5 开始到现在最新版本,该方法是否发生变化。
        public static void main(String[] args) {
    
    	String s = "";
    	String[] ss =  s.split(",");
            System.out.println(ss.length);//1
            System.out.println(Arrays.toString(ss));//[]
            System.out.println(ss == null);//false
            System.out.println(ss[0] == null);//false
    
            String s1 = "123-123.2-1--";
            String[] ss1 =  s1.split("-");
            System.out.println(ss1.length);//3
            System.out.println(Arrays.toString(ss1));//[123, 123.2, 1]
    
            String s2 = "123--123.2-1--";
            String[] ss2 =  s2.split("-");
            System.out.println(ss2.length);//4
            System.out.println(Arrays.toString(ss2));//[123, , 123.2, 1]
        }
    

    参考 :
    https://blog.csdn.net/qq_27093465/article/details/54910323

    1 操作
    PeterChu 在 2019-07-23 17:00:37 更新了该回帖
  • PeterChu
    作者

    Cannot read property 'colspan' of undefined 前端页面报错

    原因:
    字段组前面有多出分隔符 ","
    image.png

  • PeterChu
    作者

    关闭此贴,从 Solo 中推送公开重新整理的新帖。

请输入回帖内容 ...