【问题标题】:Conflict while mapping results in struts.xml [duplicate]映射导致struts.xml时发生冲突[重复]
【发布时间】:2018-02-12 06:25:52
【问题描述】:

我在 MyBdbSearch 类中定义了 3 个方法,并在 struts.xml 中映射如下。

struts.xml

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

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
    <include file="struts-default.xml"/>
    <package name="default" extends="struts-default">    

        <action name="bdbSearch" 
                class="com.bdb.MyBdbSearchAction"
                method="showSearchPage">
              <result name="okBdbSearchPage">/jsp/search.jsp</result>
        </action>

         <action name="bdbSearch" 
                class="com.bdb.MyBdbSearchAction"
                method="search">
              <result name="okBdbSearch">/jsp/search.jsp</result>
        </action>

        <action name="bdbSearch" 
                class="com.bdb.MyBdbSearchAction"
                method="getNextResults">
              <result name="okBdbSearch">/jsp/search.jsp</result>
        </action>
     </package>
</struts>

MyBdbSearchAction.java

public class MyBdbSearchAction extends ActionSupport implements ServletRequestAware{    

@Override
    public void setServletRequest(HttpServletRequest request) {
        // TODO Auto-generated method stub
        this.request = request;
    }



    public String showSearchPage(){

        //some initialization code
        return "okBdbSearchPage";
    }

public String search(){

        //some code
        return "okBdbSearch";
    }

public String getNextResults(){

    //some code
    return "okBdbSearch";
}
}

index.jsp

<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<body>
    <s:url id="searchUrl" action="/bdbSearch" method="showSearchPage"></s:url>
    <s:a href="%{searchUrl}">
        <h4>search</h4>
    </s:a>
</body>
</html>

当在 xml 文件中仅配置一种方法 (showSearchPage) 时,应用程序可以正常工作。但是如果所有 3 种方法都按上述配置,则会抛出以下错误。

没有为操作 com.bdb.MyBdbSearchAction 和结果 okBdbSearchPage 定义结果

为什么会有这种奇怪的行为?

【问题讨论】:

    标签: java struts2


    【解决方案1】:

    你必须改变 .xml 文件如下:

    <struts>
    <include file="struts-default.xml"/>
    <package name="default" extends="struts-default">    
    
        <action name="bdbSearch" class="com.bdb.MyBdbSearchAction">
              <result name="okBdbSearchPage">/jsp/search.jsp</result>
              <result name="okBdbSearch">/jsp/search.jsp</result>
              <result name="okBdbSearch">/jsp/search.jsp</result>
        </action>
     </package>
    

    【讨论】:

    • 谢谢!它帮助我加深了对 Struts2 中结果/操作如何映射的理解
    • 不客气,我的朋友。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-28
    • 2012-04-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多