1

myPage.jspと言うJSPが1つあります

jspでは私はhavintwodivです

各divには、次の1つのフォームが含まれています。

歌姫:

<div class="validation-box">                
            <form:form id="compnay-detail" method="post" action="companySave.do" commandName="company">
                    <table cellpadding="0" cellspacing="0">
                        <tr>
                            <td class="col"><label>Address Type</label> <form:input type="text" path="addressType" class="textbox" name="addressType" id="addType" maxlength="20" />
                            </td>
                            <td class="col"><label>Street</label> <form:input path="street"
                            class="textbox" name="street" id="street" maxlength="50" />
                            </td>               
                        </tr>
                        <tr>
                            <td colspan="3" class="no-padding">
                                <div class="button-pannel margin-top">
                                <span class="lhscrv"> <span class="rhscrv"> <input type="submit" class="bttn" id="saveAddress" value="Save" />
                                </span>
                                </span> <span class="lhscrv"> <span class="rhscrv"> <input
                                        type="button" class="bttn" id="reset" value="Reset" />
                                </span>
                                </span> <span class="lhscrv"> <span class="rhscrv"> <input
                                        type="button" class="bttn" id="cancel" value="Cancel" />
                                </span>
                                </span>
                            </td>
                        </tr>
                    </table>
            </form:form>
            </div>

div B:

<div class="validation-box">                
            <form:form id="compnayAddDetail" method="post" action="test.do" commandName="address">
                    <table cellpadding="0" cellspacing="0">
                        <tr>
                            <td class="col"><label>Address Type</label> <form:input type="text" path="addressType" class="textbox" name="addressType" id="addType" maxlength="20" />
                            </td>
                            <td class="col"><label>Street</label> <form:input path="street"
                            class="textbox" name="street" id="street" maxlength="50" />
                            </td>               
                        </tr>
                        <tr>
                            <td colspan="3" class="no-padding">
                                <div class="button-pannel margin-top">
                                <span class="lhscrv"> <span class="rhscrv"> <input type="submit" class="bttn" id="saveAddress" value="Save" />
                                </span>
                                </span> <span class="lhscrv"> <span class="rhscrv"> <input
                                        type="button" class="bttn" id="reset" value="Reset" />
                                </span>
                                </span> <span class="lhscrv"> <span class="rhscrv"> <input
                                        type="button" class="bttn" id="cancel" value="Cancel" />
                                </span>
                                </span>
                            </td>
                        </tr>
                    </table>
            </form:form>
            </div>

私のコントローラークラス:

@RequestMapping("/companySave.do")
    public String saveCompany(Map<String, Object> map, @ModelAttribute("company")
    Company company,@ModelAttribute("address")
    CompanyAddress address, BindingResult result)
    {           
        //......   code.......
        return "redirect:/companyAddressPage/"+company.getId()+".do";

    }

    @RequestMapping("/companyAddressPage/{id}.do")
    public String companyAddressPage(@PathVariable("id") long id,Map<String, Object> map, @ModelAttribute("company")
    Company company,@ModelAttribute("address")
    CompanyAddress address, BindingResult result)
    {   //......   code.......
        return "myPage";
    }

    @RequestMapping("/test.do")
    public String saveAddressCompany(Map<String, Object> map, @ModelAttribute("company")
    Company company,@ModelAttribute("address")
    CompanyAddress address, BindingResult result)
    {   //......   code.......
        return "myPage";
    }

標的:

div Aにある最初のフォームを送信した後、別のフォームを含むdivBを有効にします。

問題 :

最初のフォームは正しく送信されていますが、2番目のフォームの送信ボタンをクリックすると、例外がスローされます(アクションは呼び出されません)

例外 :

値テストをタイプ'java.lang.String'からタイプ'long'に変換できません。ネストされた例外はjava.lang.NumberFormatExceptionです:入力文字列の場合: "test"] with root cause

何か案が....???

前もって感謝します...!!!

4

2 に答える 2

1

編集:コメントも参照してください。

2番目のフォームのアクション属性の前にスラッシュを追加する必要があります。

action="/test.do"

それ以外の場合は、/ companyAddressPage / 1.do(1はIDの例)にリダイレクトされたばかりなので、/ companyAddressPage/test.doになります。これは、2番目のフォームのアクション属性が相対的であるためです。

于 2012-05-21T08:14:34.187 に答える
0

@PathVariableで取得する値が何であれ、常に文字列型の値のみになります。

したがって、使用する代わりに

@PathVariable("id") long id

これを使って

@PathVariable("id") String id

次に、関数で使用する前に、手動でlongに変換します。

これがお役に立てば幸いです。

乾杯。

于 2012-05-21T08:52:23.373 に答える