javax.- servlet.jsp.JspException: Cannot find bean: "CommentsUpdated" in jedem Bereich

Struts-config.xml:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts-config PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
      "http://jakarta.apache.org/struts/dtds/struts-config_1_2.dtd">
<struts-config>
  <form-beans>
  </form-beans>

  <global-exceptions>
  </global-exceptions>

<global-forwards>
    <forward name="welcome"  path="/Welcome.do"/>
</global-forwards>

<action-mappings>
    <action path="/Link" parameter="method" type="com.sicmsb.action.LinkAction">
        <forward name="search" path="search"/>
    </action>
    <action path="/Welcome" forward="/welcomeStruts.jsp"/>
</action-mappings>

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor"/>

<message-resources parameter="com/vaannila/ApplicationResource"/>

<plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tiles-defs.xml" />      
    <set-property property="moduleAware" value="true" />
</plug-in>

<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property
        property="pathnames"
        value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
</plug-in>

</struts-config>

tiles-defs.xml:

<?xml version="1.0" encoding="UTF-8" ?>

 <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"
       "http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd">
<tiles-definitions>
    <definition name="baseLayout" path="/common-layout.jsp">
        <put name="header" value="/header.jsp" />
        <put name="body" value="/body.jsp" />
        <put name="footer" value="/footer.jsp" />
    </definition>
    <definition name="search" extends="baseLayout">

        <put name="body" value="/searchMyUser.jsp" />
    </definition>
</tiles-definitions>

common-layout.jsp:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">
<html>

<head>
<title></title>
</head>
<body>
     <table border="1"  width="100%" height="100%">
        <tr>
            <td><tiles:insert attribute="header" /></td>
        </tr>

        <tr>
            <td><tiles:insert attribute="body" /></td>
        </tr>

        <tr>
            <td><tiles:insert attribute="footer" /></td>
        </tr>
    </table>
</body>
</html>

searchMyUser.jsp:

<%@page import="com.sicmsb.bean.Comments"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>

<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<script>
    function submitAdd(form) {
        form.submit();
    }

    function goDetail(commentId) {
        var myform = document['detForm'];
        //myform.action = "/detail.do";
        myform['commentId'].value = commentId;
        myform.submit();
    }
</script>
<style>
A {
    text-decoration: underline;
    color: blue;
    cursor: pointer;
}
</style>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Search here</title>
</head>
<body>
    <form name="detForm" action="details.do" method="post">
        <input type="hidden" name="commentId" />
    </form>

    <h1>Search in MyUser</h1>

    <form action="SearchUser.do" method="post">
        <table cellpadding="3pt">
            <tr>
                <td>Insert Name : <html:text name="CommentsUpdated"
                        property="myUser" size="30"></html:text></td>
            </tr>
        </table>
        <p />
        <input type="button" value="Search"
            onclick="this.disabled=true; submitAdd(this.form)" />
    </form>

    <hr />

    <table>
        <tr>
            <th>Name</th>
            <th>Email</th>
            <th>Webpage</th>
            <th>Summary</th>
            <th>Comments</th>
        </tr>

        <logic:iterate id="comment" name="listComments"
            type="com.sicmsb.bean.Comments">
            <tr>
                <td><a onclick="goDetail('<%=comment.getCommentId()%>')"> <bean:write
                            name="comment" property="myuser" />
                </a>
                <td>|<bean:write name="comment" property="email" />
                <td>|<bean:write name="comment" property="webpage" />
                <td>|<bean:write name="comment" property="summary" />
                <td>|<bean:write name="comment" property="comments" />
            </tr>
        </logic:iterate>
    </table>
</body>
</html>

LinkAction.java:

package com.sicmsb.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.actions.DispatchAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForward;

public class LinkAction extends DispatchAction {
    public ActionForward Search(ActionMapping mapping, ActionForm  form,
            HttpServletRequest request, HttpServletResponse response)
            throws Exception {
        return mapping.findForward("search");
    }
}

Konnte ich die Vorlage erstellen, und rufen Sie in den Formen ohne die "name" Attribute.Es hat funktioniert, dann habe ich gemerkt, ich habe zu nennen, in Formen, die Namen-Attribut (CommentsUpdated), so dass ich in der Lage, übergeben Sie die Variablen, die für das Graben der Daten aus der Datenbank.Leider wirft es eine Fehlermeldung wie diese:

javax.servlet.jsp.JspException: Cannot find bean: "CommentsUpdated" in any scope.

ich verstehe, dass das name-Attribut in meiner serachMyUser.jsp diesen Fehler verursacht, aber ich bin stecken geblieben auf diese Teil, ich habe versucht, eine Suche mit google nach Beispielen, aber alle ich ankommen ist die Formen wurden genannt, ohne Namen-Attribut in es.

  • was ist das genaue problem?
  • wenn ich laden Sie es im tomcat-server,es wirft eine Fehlermeldung wie diese: 'javax.- servlet.jsp.JspException: Cannot find bean: "CommentsUpdated"' @bencripps
  • Sie haben keine form-beans definiert, ich bin mir nicht sicher, was Sie erwarten.
  • Nicht verwandt, aber das muss von einem sehr alten tutorial, es ist ziemlich schrecklich.
  • schließlich fand ich das Problem, nachdem ich enter name="CommentsUpdated" innerhalb der Tätigkeit in der struts-config.xml..es funktioniert! hoffe, dass dies vielleicht hilfreich für die anderen auch!
  • vielen Dank @bencripps!
  • vielen Dank @DaveNewton!

InformationsquelleAutor Amos | 2014-11-13
Schreibe einen Kommentar