html 复选框添加时为空,修改复选框<div class="form-group"> <label class="col-sm-3 control-label">专长:</label> <div class="col-sm-8" th:with="type=${@dict.getType('xqd_zc_lx')}"> <label th:each="dict : ${type}" class="check-box"> <input name="zhuanchang" type="checkbox" th:value="${dict.dictValue}" th:text="${dict.dictLabel}" th:attr="checked=${jcyJcyxx.zhuanchang.contains(dict.dictValue)?true:false}"> </label> </div> </div>为空 修改时报错 EL1011E: Method call: Attempted to call method contains(java.lang.String) on null context object
时间: 2023-07-06 09:25:54 浏览: 139
这个错误信息提示说你尝试在一个空的上下文对象上调用 contains 方法,而 contains 方法的参数类型是 String。根据你提供的代码,可能是 jcyJcyxx 对象为空导致的错误。你可以在页面上加上一些调试信息,比如输出 jcyJcyxx 对象的值,以便更好地定位问题。具体来说,你可以在页面中加上以下代码:
```
<!-- 输出 jcyJcyxx 对象的值 -->
<p th:text="${jcyJcyxx}"></p>
```
这样可以帮助你确定 jcyJcyxx 是否为空,以及它的值是什么。如果 jcyJcyxx 确实为空,你需要检查一下后端的代码,看看是否正确地初始化了 jcyJcyxx 对象。
相关问题
html 复选框添加时为空,修改复选框<div class="form-group"> <label class="col-sm-3 control-label">专长:</label> <div class="col-sm-8" th:with="type=${@dict.getType('xqd_zc_lx')}"> <label th:each="dict : ${type}" class="check-box"> <input name="zhuanchang" type="checkbox" th:value="${dict.dictValue}" th:text="${dict.dictLabel}" th:attr="checked=${jcyJcyxx.zhuanchang.contains(dict.dictValue)?true:false}"> </label> </div> </div>为空 修改时报错
你提供的代码中,复选框添加时为空,这可能是因为在添加时`jcyJcyxx.zhuanchang`未被初始化,因此`contains`方法会返回`false`。你可以在添加时进行初始化,例如:
```
jcyJcyxx.setZhuanchang(new ArrayList<String>());
```
至于修改时报错,我需要更多的信息才能确定问题所在。请提供报错信息和修改的代码,这样我才能更准确地帮助你解决问题。
html中thymeleaf模板,添加页面,判断如果改变下拉框id="xqdmc"的值为1 , 复选框 <div class="col-sm-9" th:with="type=${@dict.getType('xqd_jcy_lb')}"> <label th:each="dict : ${type}" class="check-box"> <input name="fenlei" type="checkbox" th:value="${dict.dictValue}" th:text="${dict.dictLabel}" > </label> </div> name="fenlei"重置,可选的值为11,12,13,14,15。并默认是选中状态,其它值不可选。判断如果改变下拉框id="xqdmc"的值为2 , 复选框 name="fenlei"重置,可选的值为12 ,并默认是选中状态,其它值不可选。判断如果改变下拉框id="xqdmc"的值为10, 复选框name="fenlei"重置,可选的值为32,并默认是选中状态,其它值不可选。判断如果改变下拉框id="xqdmc"的值为11, 复选框name="fenlei"重置,可选的值为21,22,并默认是选中状态,其它值不可选。判断如果改变下拉框id="xqdmc"的值为12, 复选框name="fenlei"重置,可选的值为21,22,并默认是选中状态,其它值不可选。
可以通过Thymeleaf中的条件判断语句th:if和th:unless实现上述处理逻辑。具体代码如下:
```html
<div class="form-group">
<label class="col-sm-3 control-label">选区名称:</label>
<div class="col-sm-9">
<select id="xqdmc" name="xqdmc">
<option value="1">选区1</option>
<option value="2">选区2</option>
<option value="10">选区10</option>
<option value="11">选区11</option>
<option value="12">选区12</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">分类:</label>
<div class="col-sm-9" th:with="type=${@dict.getType('xqd_jcy_lb')}">
<label th:each="dict : ${type}" class="check-box">
<input type="checkbox" th:value="${dict.dictValue}" th:text="${dict.dictLabel}"
th:checked="${#strings.contains(fenlei, dict.dictValue)}" th:disabled="${#strings.contains(fenlei, dict.dictValue) and not #strings.contains(fenlei, defaultFenlei)}">
</label>
</div>
</div>
<script th:inline="javascript">
/* 定义默认可选的分类 */
var defaultFenlei = ["11", "12", "13", "14", "15"];
/* 当选择选区1时,类型可选值为11,12,13,14,15 */
var xqdmc1Fenlei = ["11", "12", "13", "14", "15"];
/* 当选择选区2时,类型可选值为12 */
var xqdmc2Fenlei = ["12"];
/* 当选择选区10时,类型可选值为32 */
var xqdmc10Fenlei = ["32"];
/* 当选择选区11或12时,类型可选值为21,22 */
var xqdmc11_12Fenlei = ["21", "22"];
/* 监听选区名称下拉框改变事件 */
$("#xqdmc").change(function() {
/* 获取当前选中的选区名称 */
var xqdmc = $(this).val();
/* 根据选中的选区名称设置可选的分类 */
if (xqdmc === "1") {
defaultFenlei = xqdmc1Fenlei;
} else if (xqdmc === "2") {
defaultFenlei = xqdmc2Fenlei;
} else if (xqdmc === "10") {
defaultFenlei = xqdmc10Fenlei;
} else if (xqdmc === "11" || xqdmc === "12") {
defaultFenlei = xqdmc11_12Fenlei;
}
/* 重置分类复选框 */
$("input[name='fenlei']").prop("checked", false);
$("input[name='fenlei']").prop("disabled", true);
/* 设置默认可选的分类 */
$.each(defaultFenlei, function(index, value) {
$("input[name='fenlei'][value='" + value + "']").prop("checked", true);
$("input[name='fenlei'][value='" + value + "']").prop("disabled", false);
});
});
</script>
```
上述代码中,首先定义了默认可选的分类数组defaultFenlei和根据选中的选区名称设置可选的分类数组xqdmc1Fenlei、xqdmc2Fenlei、xqdmc10Fenlei、xqdmc11_12Fenlei,然后通过Thymeleaf的条件判断语句th:if和th:unless以及JavaScript监听下拉框改变事件来实现动态设置分类复选框的可选状态和默认选中状态的功能。对于已经选中的分类,通过设置th:checked属性为true来保持其选中状态,同时设置th:disabled属性为true来禁止其再次选择。
阅读全文