0

我正在用Spring框架製作網站。 問題是隻有當我把VO作爲參數時纔會出現404錯誤。 我把VO作爲@ModelAttribute在控制器中。春天:只有vo類作爲春季控制器參數的404錯誤

我將VO的屬性與兩個表格列在一起。 我猜這個問題是由於1-VO匹配2表造成的,因爲 當我用1-VO數學表1中的相同方法時,沒有錯誤。

請讓我知道如果有人知道這個錯誤發生的原因。

這裏是來源。

這是與VO屬性匹配的第一個表格。

TAN_ASE_NO   int(11) 
ASE_TP_DT_CD  int(11) 
NM     varchar(20) 
XPN     tinytext 
WST_DT    date 
ASE_ST_DT_CD  varchar(5) 
TAN_ASE_CR_NO  int(11) 
TAN_ASE_ENTP_INFO int(11) 
TAN_ASE_AD_FILE_NO int(11) 
TAN_ASE_CHRPS_NO int(11) 

這是與VO屬性匹配的第2個表。

TAN_ASE_NO_HDW int(11) 
HDW_FLG   varchar(20) 
OS_TP   varchar(20) 
AMG_FLG   varchar(20) 
HDW_MODL_NM  tinytext 
HDW_PST   varchar(30) 
HOSTNM   varchar(30) 
IP    varchar(20) 
US_USE   varchar(20) 
PRD_CMP   varchar(30) 
MDL    varchar(30) 
CLK    varchar(10) 
CPU_CNT   int(11) 
CR_CNT   int(11) 
MEMR   int(11) 
STRG_TOT_CAPA int(11) 
ADMR   varchar(20) 

我用這兩個表做了一個VO類,來插入這些表的相關數據。

public class HDW { 
private int tan_ase_no; 
private int ase_tp_dt_cd; 
private String nm; 
private String xpn; 
private String wst_dt; 
private int ase_st_dt_cd; 
private int tan_ase_cr_no; 
private int tan_ase_entp_info; 
private int tan_ase_ad_file_no; 
private int tan_ase_chrps_no; 
private int tan_ase_no_hdw; 
private String hw_flg; 
private String os_tp; 
private String amg_flg; 
private String hw_modl_nm; 
private String hw_pst; 
private String hostnm; 
private String ip; 
private String us_use; 
private String prd_cmp; 
private String mdl; 
private String clk; 
private int cpu_cnt; 
private int cr_cnt; 
private int memr; 
private int strg_tot_capa; 
private String admr; 

(設置器/吸氣劑被省略。)

最後,這裏的控制器源部分。

public String addHdw(HttpServletRequest request, HttpServletResponse response, 
     @ModelAttribute("command") HDW hdw) throws Exception{ 
    System.out.println("$$Test for hdwControl"); 
    System.out.println(hdw); 
    hdwDAO.addHdw(hdw); 
    return "redirect:/index.do"; 
} 

當我刪除@ModelAttribute( 「命令」)HDW HDW參數, 控制檯顯示我 「$$試驗hdwControl」 沒有任何問題。

我應該怎麼做才能解決問題?

**這裏的addtion來源**

我相匹配的@ModelAttribute爲html當然輸入字段。

<form name="form1"> 
<div class="containerRight"> 
    <article> 
     <header> 
      <h2>H/W</h2> 
      <input type="hidden" name="tan_ase_no" value=""> 
      <input type="hidden" name="tan_ase_no_hdw" value=""> 
      <input type="hidden" id="ase_tp_dt_cd" name="ase_tp_dt_cd" value="401"> 
     </header> 
     <div class="articleBody"> 
      <div class="articleBodyLeft"> 
       <section> 
        <h3>BASIC</h3> 
        <table class="tableArticle"> 
         <tr> 
          <td width="120">NAME 
          </td> 
          <td><input name="nm" type="text" id="nm" value=""></td> 
         </tr> 
         <tr> 
          <td>FLAG</td> 
          <td> 
           <select name="hw_flg" id="codeList600">       
           </select> 
          </td> 
         </tr> 
         <tr> 
          <td>OS</td> 
          <td> 
           <select name="os_tp" id="codeList700"> 
           </select> 
           <label>*VIRTUALIZATION FLAG : </label> 
           <select name="amg_flg" id="codeList800"> 
           </select> 
          </td> 
         </tr> 
         <tr> 
          <td width="120">MODEL</td> 
          <td><input type="text" name="hw_modl_nm" value=""></td> 
         </tr> 
         <tr> 
          <td width="120">COMPANY</td> 
          <td><input type="text" name="tan_ase_entp_info" value=""> 
         </tr> 
         <tr> 
          <td width="120">POSITION</td> 
          <td><input type="text" name="hw_pst" value=""></td> 
         </tr> 
         <tr> 
          <td>DESCRIPTION</td> 
          <td><input type="text" name="xpn" value=""></td> 
         </tr> 
         <tr> 
          <td>STATUS</td> 
          <td> 
           <input type="radio" name="ase_st_dt_cd" value="501">OPERATION 
           <input type="radio" name="ase_st_dt_cd" value="502">UNUSED 
           <input type="radio" name="ase_st_dt_cd" value="503">DISCARD 
          </td> 
         </tr> 
         <tr> 
          <td>DICARD DATE</td> 
          <td><input type="date" name="wst_dt" value=""></td> 
         </tr> 
        </table> 
       </section> 
       <section> 
        <h3>INFO</h3> 
        <table class="tableArticle"> 
         <tr> 
          <td>Hostname</td> 
          <td> 
           <input type="text" name="hostnm" id="hostnm" value=""> 
           <label for="ip">IP : </label><input type="text" name="ip" id="ip"> 
          </td> 
         </tr> 
         <tr> 
          <td>ADMIN Agent</td> 
          <td> 
           <input type="checkbox" name="admr" value="1001">SERVER 
           <input type="checkbox" name="admr" value="1002">SECURITY 
           <input type="checkbox" name="admr" value="1003">BACK-UP 
          </td> 
         </tr> 
         <tr> 
          <td>USE</td> 
          <td> 
           <input type="checkbox" name="us_use" value="901">DEVELOP 
           <input type="checkbox" name="us_use" value="902">TEST 
           <input type="checkbox" name="us_use" value="903">VERIFY 
           <input type="checkbox" name="us_use" value="904">OPERATE 
          </td> 
         </tr> 
        </table> 
       </section> 
       <section> 
        <h3>제원</h3><input type="button" value="TEST"> 
        <table class="tableArticle"> 
         <tr> 
          <td>CPU</td> 
          <td> 
           PRODUCTION : <input type="text" name="prd_cmp" value=""> 
           MODEL : <input type="text" name="mdl" value=""> 
           Clock : <input type="text" name="clk" value=""> GHz 
          </td> 
         </tr> 
         <tr> 
          <td>CPU QUANTITY</td> 
          <td> 
           <input type="text" name="cpu_cnt" value="">CPU × <input type="text" name="cr_cnt" value="">Core = 48 Core 
          </td> 
         </tr> 
         <tr> 
          <td>Memory</td> 
          <td> 
           <input type="text" name="memr" value="">GB 
          </td> 
         </tr> 
         <tr> 
          <td rowspan="2">DISK IN</td> 
          <td>TOTAL CAPA : 500 GB <input type="button" value="MANAGEMENT" onclick="popUp($('#tan_ase_no').val(),$('#ase_tp_dt_cd').val())"></td> 
         </tr> 
         <tr> 
          <td>= 100GB × 2 + 200GB × 2</td> 
         </tr> 
         <tr> 
          <td rowspan="2">DISK-OUT(Mount)</td> 
          <td> 
           <input type="button" value="INFO"> 
          </td> 
         </tr> 
         <tr> 
          <td></td> 
         </tr>      
        </table> 
       </section> 
       <section> 
        <h3>Volume</h3><input type="button" value="INFO"> 
        <table class="tableArticle"> 
         <tr> 
          <td>TOTAL</td> 
          <td> 
           10.,246 GB 
          </td> 
         </tr> 
        </table> 
       </section> 
       <section> 
        <h3>ADDED FILE</h3><input type="file" value="ADD"> 
        <table class="tableArticle"> 
         <tr> 
          <td>ADDED LIST</td> 
          <td><input type="hidden" name="tan_ase_ad_file_no" value=""></td> 
         </tr> 
        </table> 
       </section> 
       <section> 
        <h3>MANAGER</h3> 
        <table class="tableArticle"> 
         <tr> 
          <td>Main</td> 
          <td><input type="search" results="10" name="tan_ase_chrps_no"></td> 
         </tr> 
         <tr> 
          <td>Sub</td> 
          <td><input type="search" results="10" name=""></td> 
         </tr> 
        </table> 
       </section> 
      </div> 
      <div class="articleBodyRight"> 
       <section> 
        <h3>CONTRACT</h3> 
        <table class="tableArticleRel"> 
         <tr> 
          <td>Name<input type="hidden" name="tan_ase_cr_no" value=""></td> 
          <td><a href="#"></a></td> 
         </tr> 
         <tr> 
          <td>DATE</td> 
          <td>2012-01-05</td> 
         </tr> 
        </table> 
       </section>     
      </div> 
     </div> 
     <section class="btnDetailArea"> 
      <button type="button">Send Message</button> 
      <button type="button" id="btnEdit" onclick="setEditMode()">EDIT</button> 
      <input id="btnSubmit" type="button" onclick="submitForm()" value="SAVE"> 
      <button type="button">CLOSE</button> 
     </section> 
    </article> 
</div> 

這裏的xml文件(iBatis的SQLMAP)包括查詢插入到HDW數據庫。

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

<insert id="addHdw" parameterClass="Hdw"> 
    <![CDATA[ 
     insert into tan_ase values (0,#ase_tp_dt_cd#,#nm#,#xpn#,#wst_dt#,#ase_st_dt_cd#, 
     #tan_ase_cr_no#,#tan_ase_entp_info#,#tan_ase_ad_file_no#,#tan_ase_chrps_no#) 
    ]]> 
    <selectKey keyProperty="tan_ase_no_hdw" resultClass="Integer"> 
     select LAST_INSERT_ID() 
    </selectKey> 
     insert into hdw values (#tan_ase_no_hdw#,#hw_flg#,#os_tp#,#amg_flg#,#hw_modl_nm#,#hw_pst#, 
     #hostnm#,#ip#,#us_use#,#prd_cmp#,#mdl#,#clk#,#cpu_cnt#,#cr_cnt#,#memr#,#strg_tot_capa#,#admr#) 

回答

0

@ModelAttribute註解上請求處理程序通常用於HTML形式輸入裝訂成特定類型的(在你的情況HDW類)。它不處理與你的數據庫的任何映射。

你得到的可能是春天未能結合,因爲你沒有張貼所有必填字段

如果你認爲你的問題是ORM(對象關係映射)的404錯誤,調查您的持久性配置(休眠/ JPA /等)

+0

謝謝你的答案,但我實際上與ModelAttribute匹配的HTML輸入字段,所以我添加了代碼。 – ROMM