Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts html:select下拉列表填充错误,表示属性属性是必需的_Java_Jsp_Struts - Fatal编程技术网

Java Struts html:select下拉列表填充错误,表示属性属性是必需的

Java Struts html:select下拉列表填充错误,表示属性属性是必需的,java,jsp,struts,Java,Jsp,Struts,我在一个应用程序中使用struts 1.1,在这个应用程序中,我需要填充一个来自数据库值的下拉列表,并在我的操作中将其设置为表单bean,其中显示以下jsp <td width="80%" class="formfield" valign='top'> <html:select property="selectedUsedByUserName"> <html:option value="" >-</html:option>

我在一个应用程序中使用struts 1.1,在这个应用程序中,我需要填充一个来自数据库值的下拉列表,并在我的操作中将其设置为表单bean,其中显示以下jsp

<td width="80%" class="formfield" valign='top'>
    <html:select property="selectedUsedByUserName">
    <html:option value="" >-</html:option>
    <html:optionsCollection property="usedByUserList" label="name" value="staffNo"/>
    </html:select>
</td>

-
在我下面使用的getter和setter形式bean中

private UserDTO selectedUsedByUser = null;
private HashMap usedByUserListMap = new HashMap();

public UserDTO[] getUsedByUserList() {
    return (UserDTO[]) usedByUserListMap.values().toArray(new UserDTO[0]);
}

public void setUsedByUserList(UserDTO[] usedByUserList) {
    usedByUserListMap.clear();
    if (usedByUserList != null) {
        for (int i = 0; i < usedByUserList.length; i++) {
            usedByUserListMap.put(
                    String.valueOf(usedByUserList[i].getStaffNo()),
                    usedByUserList[i]);
        }
    }
}

public String getSelectedUsedByUserName() {
    String selectedUsedByUserName = null;
    UserDTO tempSelectedUsedByUser = getSelectedUsedByUser();
    if (tempSelectedUsedByUser != null) {
        selectedUsedByUserName = String.valueOf(tempSelectedUsedByUser
                .getStaffNo());
    }
    return selectedUsedByUserName;
}

public void setSelectedUsedByUserName(String string) {
    UserDTO tempSelectedUsedByUserName = null;
    if (string != null) {
        tempSelectedUsedByUserName = (UserDTO) usedByUserListMap
                .get(string);
    }
    setSelectedUsedByUser(tempSelectedUsedByUserName);
}

public UserDTO getSelectedUsedByUser() {
    return selectedUsedByUser;
}

public void setSelectedUsedByUser(UserDTO usedByUser) {
    this.selectedUsedByUser = usedByUser;
}
private userd to selectedUsedByUser=null;
私有HashMap usedByUserListMap=新HashMap();
public UserDTO[]getUsedByUserList(){
return(UserDTO[])usedByUserListMap.values().toArray(newuserdto[0]);
}
public void setUsedByUserList(UserDTO[]usedByUserList){
usedByUserListMap.clear();
if(usedByUserList!=null){
for(int i=0;i
但当我打印异常的堆栈跟踪时,我看到了下面的内容。请问这个例外的原因是什么

根据TLD或标记文件,属性属性是必需的 对于标记,请选择在 org.apache.jasper.compiler.DefaultErrorHandler.jsperor(DefaultErrorHandler.java:78) 在 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:373) 在 org.apache.jasper.compiler.ErrorDispatcher.jsperor(ErrorDispatcher.java:201) 在 org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:833) 位于org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)位于 org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)位于 org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:870) 位于org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1501) org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)位于 org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2341)位于 org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2347)位于 org.apache.jasper.compiler.Node$Root.accept(Node.java:498)位于 org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2291)位于 org.apache.jasper.compiler.Validator.validate(Validator.java:1853)位于 org.apache.jasper.compiler.compiler.generateJava(compiler.java:210)位于 org.apache.jasper.compiler.compiler.compile(compiler.java:435)位于 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:608) 在 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:360) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:486) 位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:380) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:847) org.apache.catalina.core.ApplicationFilterChain.servletService


我已经在jsp选择标记中设置了attribute属性。我们是否需要在加载jsp之前将其设置为一个值。我相信我们使用它来跟踪在“填充”下拉列表中选择的选项,对吗?因此,一旦我们选择了一个值,struts就会将所选值设置为正确的值?

您确定(a)实际部署了JSP,并且(b)正在查看正确的JSP吗?是的。你为什么这么说请。。。因为您有一个
属性
属性,我发现您的应用程序容器的JSP解析器中不太可能有bug。我需要初始化属性吗?air声明标记本身没有属性属性。属性值是什么并不重要,这是一个解析问题。