Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > ошибка в форме при добавлении поля


Автор: Fubu_By 6.11.2007, 13:44
есть страница, сделанная при помощи struts, при нажатии на ссылку "Добавить файл" должно на форме добавиться новое поле, но у меня даже не запускаеться, хотя если вместо кода нового пля вставить любой текст то всё работает нормально
Код

<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/struts-template.tld" prefix="template" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ page contentType="text/html; charset=windows-1251" %>
<%@ page import="org.apache.struts.upload.FormFile" %>
<html:html>
<head>
<title>
</title>
<script language = "JavaScript">

var items = 1;

function AddItem(){

  div = document.getElementById("items");
  button = document.getElementById("add");
  newitem = '<br /><html:file property="file" />';
  newnode = document.createElement("span");
  newnode.innerHTML = newitem;
  div.insertBefore(newnode,button);

}

</script>
</head>
<body>
<jsp:include page="head.jsp" flush="true"/>
<jsp:include page="colum.jsp" flush="true"/>

<html:errors property="name"/>
<html:form action="/uploadAction" method="POST">
<div ID="items">
<html:file property="file" />
</div>
<html:link href="javascript:AddItem();">Добавить файл</html:link><br />
<html:submit property="submit" value="Submit"/>
</html:form>
<jsp:include page="end.jsp" flush="true"/>
</body>
</html:html>

Ошибка происходит из-за содержимого переменной 19-ой строки

а вот сами логи
Код

StandardWrapperValve[debugjsp]: Servlet.service() for servlet debugjsp threw exception

javax.servlet.ServletException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope

javax.servlet.ServletException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope

    at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:471)

    at org.apache.jsp.Upload$jsp._jspService(Upload$jsp.java:341)

    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)

    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)

    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)

    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)

    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)

    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)

    at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)

    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)

    at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

    at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)

    at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)

    at java.lang.Thread.run(Thread.java:536)

Автор: DEER 6.11.2007, 13:49
Код
newitem = '<br /><html:file property="file" />';

html:file - это не есть тег HTML'я. Это jsp тег, который при генерации страницы превратится в
Код

<br/><input type="file" name="file">

попробуй вывести такую строку

Добавлено через 3 минуты и 7 секунд
и ещё. в struts-config в описание формы надо добавить поле file
Код

          <form-property name="file" type="org.apache.struts.upload.FormFile"/>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)