0

스프링 프레임 워크로 사이트를 만들고 있습니다. VO를 매개 변수로 넣을 때만 404 오류가 발생하는 문제가 있습니다. 컨트롤러에 @ModelAttribute로 VO를 넣습니다.스프링 : 스프링 컨트롤러의 매개 변수로 vo 클래스에서만 404 오류

두 테이블 열을 함께 사용하여 VO의 속성을 만들었습니다. 1-VO mathces 1-table과 같은 방식으로 사용할 때 문제가 발생하는 이유는 1-VO가 2 테이블과 일치하기 때문입니다. 오류가 없습니다.

누군가가 알고있는 경우이 오류가 발생한 이유를 정확하게 알려주십시오.

이 소스입니다.

이것은 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 속성과 일치하는 두 번째 테이블입니다.

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; 

(세터가/게터는 생략한다.)

가 마지막으로, 여기에서 상기 제어기 광원부이다. 내가 HDW HDW 매개 변수를 @ModelAttribute ("명령")를 제거 할 때

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"; 
} 

는 콘솔은 아무 문제없이 나에게 "hdwControl에 대한 $$ 테스트"를 보여줍니다.

문제를 해결하려면 어떻게해야합니까?

는 ** 여기에 addtion 소스 **

나는 물론 입력 필드를 html로하는 @ModelAttribute 일치합니다.

<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를하는 SQLMaps는) 데이터베이스에 HDW을 삽입하는 쿼리가 포함되어 있습니다. 요청 처리기에

<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 주석

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

는 일반적으로 특정 유형 (귀하의 경우 HDW 클래스)로 HTML 양식 입력을 결합하는 데 사용됩니다. 데이터베이스와의 매핑을 전혀 처리하지 않습니다.

당신은 아마 당신이 필요한 모든 분야

당신이 당신의 문제는 (객체 관계 맵핑) ORM으로 생각한다면를 게시하지 않았기 때문에 바인딩에 실패 스프링 받고있어 404 오류가 (당신의 영속 구성을 조사 Hibernate/JPA/etc)

+0

ur 답변을 주셔서 감사합니다.하지만 실제로 ModelAttribute가있는 html 입력 필드와 일치했기 때문에 코드를 추가했습니다. – ROMM