1

表示タグのページ間を移動すると、次のエラーが発生します。

リクエスト [/seatreportsubmit] に「メソッド」という名前のハンドラ パラメータが含まれていません。これは、ラベル テキストの空白が原因である可能性があります。

ただし、検索ボタンを 2 回クリックすると、次のページに移動します。

私は過去数日間、この問題に取り組んでいます。どんな助けでも大歓迎です。

これが私のコードの一部です:

<table width="100%" align="center">
    <tr>
        <td align="Center">
           <input type="button" class="buttonstyle" value="<bean:message key="button.search" />" onclick="searchsubmit();" styleClass="buttonstylebig">&nbsp;
           <input type="button" class="buttonstyle" value="<bean:message key="button.reset" />" onclick="clearValues();">
        </td>
    </tr>
</table>

struts-config:

<action path="/seatreportsubmit"
        type="com.ford.ape.seatreport.actionobject.SeatRprtAction"
        name="SeatReportForm" scope="request" input="seatreport.details"
        validate="true" parameter="method">
        <forward name="openSeatDetails" path="seatreport.details" />
        <forward name="showSeatDetails" path="seatreport.detailsreport" />          
</action>

タイル定義:

<definition name="seatreport.details" extends="base.definition">
    <put name="body" value="/jsp/SeatReport/SeatVacReport.jsp" />
</definition>
<definition name="seatreport.detailsreport" extends="base.definition">
    <put name="body" value="/jsp/SeatReport/SeatVacReportDetailed.jsp" />
</definition> 

js:

function searchsubmit()
{
if(search()==true)
{
    if(document.forms[0].seatReportType.value=='Summary Report')
     {
        document.forms[0].seatLocation.value='';
        document.forms[0].seatBuilding.value='';
        document.forms[0].seatFloor.value='';
        document.forms[0].seatType.value='';
        document.forms[0].seatStatus.value='';
        document.forms[0].seatCompany.value='';
        document.forms[0].seatDepartment.value='';
        document.forms[0].seatSubDepartment.value='';
        document.forms[0].seatLL5.value='';
        document.forms[0].seatLL6.value='';

        document.forms[0].method.value="loadPage";
        document.forms[0].submit();
    }

    else if(document.forms[0].seatReportType.value=='Detailed Report')
     {
        document.forms[0].method.value="showSeatRprt";
        document.forms[0].submit();
     }   
}
}

以下は、使用される表示タグです。

<display:table name="requestScope.SeatReportForm.rprtData" id="table" export="true" sort="list" requestURI="/seatreportsubmit.do"   pagesize="20" align="center"  class="table_main" width="100%">

<display:column width="5%"  align="center" class="hidden" media="Excel" title="Request No" headerClass="table_header" >
<%=((SeatRprtVO)table).getSeatNo()%>
</display:column>
<display:column  class="label_text" property="seatLocation" title="Location" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="seatBuilding" title="Building" headerClass="table_header" width="3%" align="center"/>
<display:column  class="label_text" property="seatFloor" title="Floor" headerClass="table_header" width="4%" align="center"/>
<display:column  class="label_text" property="seatNo" title="Seat No" headerClass="table_header" width="4%" align="center"/>
<display:column  class="label_text" property="seatType" title="Seat Type" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="seatStatus" title="Seat Status" headerClass="table_header" width="7%" align="center"/>   

<%--    <display:column  class="label_text" property="seatCategory" title="Seat Category" 
headerClass="table_header" width="7%" align="center"/> --%>

<display:column  class="label_text" property="cdsID" title="CDSID" headerClass="table_header" width="4%" align="center"/>
<display:column  class="label_text" property="firstName" title="First Name" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="lastName" title="Last Name" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="ll6CdsId" title="LL6 CDSID" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="ll5CdsId" title="LL5 CDSID" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="ll4CdsId" title="LL4 CDSID" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="employeeType" title="Employee Type" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="company" title="Company" headerClass="table_header" width="7%" align="center"/>

<display:column  class="label_text" property="department" title="Department" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="subDepartment" title="Sub-Department" headerClass="table_header" width="7%" align="center"/>
<display:column  class="label_text" property="region" title="Region" headerClass="table_header" width="7%" align="center"/>


<display:setProperty name="export.xls.filename" value="rprtData.xls"/>
<display:setProperty name="css.tr.even" value="row1" />
<display:setProperty name="css.tr.odd" value="row2" />
<display:setProperty name="paging.banner.placement" value="bottom" />
<display:setProperty name="basic.msg.empty_list"  value="No Records Found" />

 </display:table>
4

2 に答える 2

3

表示されるエラー メッセージは一目瞭然ですmethod。パラメータがありません。

あなたのコードから、DispatchActionを使用しているようです。このタイプの Struts アクションには、一連の「パーソナライズされたexecuteメソッド」が含まれており、リクエスト パラメータを使用して、呼び出すメソッドを決定します。あなたの場合、リクエストパラメータが呼び出さmethodれます:

<action path="/seatreportsubmit" .... parameter="method">

これは、アクションへのすべてのリクエストに存在する必要があります。存在しない場合、Struts は呼び出すメソッドを認識できません。

loadPageとという 2 つのメソッドが既にあるようですshowSeatRprt。他にいますか?ページング要求を受け取るものはありますか?

ページ間を移動すると、表示タグはそのrequestURIパラメーターから始まる適切なリクエスト URL を作成しますrequestURI="/seatreportsubmit.do"。これは、パラメーターが欠落している場所だと思いmethodます。

Action クラスにメソッドを追加してhandlePagingから、表示タグの requestURI を次のように変更してみてくださいrequestURI="/seatreportsubmit.do?method=handlePaging"。ページをナビゲートするときに制御できるかどうかを確認してください。

于 2012-12-25T10:11:03.090 に答える
0

返信ありがとう..私の問題は解決したと思います...問題は、リクエストページからのクエリ文字列で渡された大量のデータでした...クエリ文字列が取得リクエストの許可された長さを超えたため、 method='showSeatRprt' は、クエリ文字列の後半に追加されていましたが、クエリ文字列が切り捨てられたため、ページングは​​パラメーター メソッドを見つけることができませんでした。

したがって、対応するメッセージが表示されていました...今は正常に機能しています...

于 2012-12-25T13:36:22.550 に答える