0

我正在使用 Spring 框架制作网站。问题是仅当我将 VO 作为参数时才会发生 404 错误。我将 VO 作为 @ModelAttribute 放在控制器中。

我用两个表格列一起制作了 VO 的属性。我猜这个问题是因为 1-VO 匹配 2-Table 引起的,因为当我使用 1-VO mathces 1-table 相同的方式时,没有错误。

如果有人知道,请告诉我发生此错误的确切原因。

这里是来源。

这是与 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)

我用这些 2 表创建了一个 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("command") HDW hdw 参数时,控制台会毫无问题地显示“$$Test for hdwControl”。

我应该怎么做才能解决这个问题?

**这里是添加源**

当然,我将 @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#)

4

1 回答 1

0

请求处理程序上的 @ModelAttribute 注释通常用于将 HTML 表单输入绑定到特定类型(在您的情况下为 HDW 类)。它不处理与您的数据库的映射。

您收到的 404 错误可能是 Spring 无法绑定,因为您没有发布所有必填字段

如果您认为您的问题与 ORM(对象关系映射)有关,请调查您的持久性配置(Hibernate / JPA / 等)

于 2013-02-04T01:44:44.030 回答