javax.servlet.jsp.JspException:找不到Bean:任何范围内的“CommentsUpdated”

hts6caw3  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(159)
    • 一月一日:**
<?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>
    • 一个月一个月:**
<?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>
    • x一个月两个月一个月:**
<%@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>
    • x一个月三个月一个月:**
<%@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>
    • 一米四分一秒:**
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");
    }
}

我设法创建了模板,并在没有"名称"属性的表单中调用。它工作,然后我意识到我必须调用具有名称属性(CommentsUpdated)的表单,以便我能够传递从数据库中挖掘数据的变量。不幸的是,它抛出这样的错误:
javax.servlet.jsp.JspException: Cannot find bean: "CommentsUpdated" in any scope.
我知道我的serachMyUser.jsp中的name属性导致了这个错误,但是我被这个部分卡住了,我试着在google中搜索例子,但是我得到的所有结果都是表单被调用时没有names属性。

izkcnapc

izkcnapc1#

<action path="/Link" parameter="method" type="com.sicmsb.action.LinkAction" name="CommentsUpdated">
            <forward name="baseLayout" path="baseLayout"/>
            <forward name="search" path="search"/>
            <forward name="details" path="details"/>
            <forward name="insert" path="insert"/>

最后我发现了这个问题,当我在struts-config.xml的活动中输入name="CommentsUpdated"后,它工作了!希望这对其他人也有帮助!

unguejic

unguejic2#

如果您没有在操作配置中设置name属性(该属性应该与<form-bean>名称相同),但在标记中使用了名称

<html:text name="CommentsUpdated" .../>

你当然有例外

找不到Bean:任何范围内的"CommentsUpdated"

Struts会示例化一个form-bean,如果配置了表单bean和动作名称,就会把它传递给动作。如果你想自己示例化它,那么你应该在JSP中访问它之前把它放在任何作用域中。

相关问题