java - <set> 中的属性无效 : "null" in new ArrayList at JSP

标签 java jsp arraylist

我有一组对象。我需要迭代它并添加我在 JSP 页面创建的新 ArrayList。但我有一个错误

javax.servlet.jsp.JspTagException: Invalid property in <set>: "null"

这是我的代码

<jsp:useBean id="idList" class="java.util.ArrayList"/>
                        <c:forEach items="${car.tape.idSet}" var="item">
                            <c:set target="${idList}" value="${item.id}"/>
                        </c:forEach>
                        <aui:input class="form-check" checked="${idList.contains(1)?'true':''}" inlineLabel="right"
                                   name="name1"
                                   type="checkbox" value="1"
                                   label="Name1"/>
                        <aui:input class="form-check" checked="${idList.contains(2)?'true':''}" inlineLabel="right"
                                   name="name2" type="checkbox" value="2"
                                   label="name2"/>

最佳答案

您收到错误

“avax.servlet.jsp.JspTagException:无效属性:“null””

因为您没有指定任何property属性

<c:set /> something like    
<c:set target="${myclass}" property="attrib" value="somevalue"/>

但在你的例子中,ArrayList是bean,你想在其中设置一些值。请尝试使用下面的示例代码。 包 com.example

public class  ArrayListBean {

private List<Object> list = new ArrayList<Object>();

public void setList(Object object) {
    list.add(object);
}

public List<Object> getList() {
    return list;
}
}

之后只需修改您的代码,例如:

<jsp:useBean id="idList" class="com.example.ArrayListBean"/>
  <c:forEach items="${car.tape.idSet}" var="item">
     <c:set target="${idList}" property="list" value="${item.id}" />
  </c:forEach>
<aui:input class="form-check" checked="${idList.contains(1)?'true':''}" inlineLabel="right" name="name1" type="checkbox" value="1 label="Name1"/>
<aui:input class="form-check" checked="${idList.contains(2)?'true':''}" inlineLabel="right" name="name2" type="checkbox" value="2" label="name2"/>

<jsp:useBean id="idList" class="com.example.ArrayListBean"/>
  <c:forEach items="${car.tape.idSet}" var="item">
     <jsp:setProperty name="idList" property="list" value="${item.id}" />
  </c:forEach>
<aui:input class="form-check" checked="${idList.contains(1)?'true':''}" inlineLabel="right" name="name1" type="checkbox" value="1 label="Name1"/>
<aui:input class="form-check" checked="${idList.contains(2)?'true':''}" inlineLabel="right" name="name2" type="checkbox" value="2" label="name2"/>

<jsp:setProperty>, This works basically the same way, only the name must refer the bean name, not the bean itself.

<jsp:useBean id="bean" class="com.example.Bean" />
<jsp:setProperty name="bean" property="someProperty" value="newvalue" />

它对我来说工作得很好。

关于java - <set> 中的属性无效 : "null" in new ArrayList at JSP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45053884/

相关文章:

java - 搜索对象数组

c# - 在 C# 中将一个数组列表数据移动到另一个数组列表

Java - com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException : Unrecognized field "" not marked as ignorable

java - 泛型方法继承

java - 让一个球在另一个球内弹跳

java - JSP如何防止HTTP请求超时?

java - Eclipse 报告 JSP 文件中的语法错误,但应用程序运行正常

java - 更改每个列表元素的 ArrayList<?> 标记

java - 遗漏了正常工作的 Regex 应该找到的某些字符串,我需要帮助确定原因

HTML/JSP 显示表格的自定义重复背景图像