2
    @POST
    @Path("post")
    @Consumes("multipart/form-data")
    public Response postCategory(@FormDataParam("text1") String text1,
            @FormDataParam("file1") InputStream file1,
            @FormDataParam("text2") String text2,
            @FormDataParam("file2") InputStream file2) {
        System.out.println("CategoryService.postCategory()");
        System.out.println("text1:" + text1);
        System.out.println("text2:" + text2);

        String uploadedFileLocation = "d://uploaded/test.jpg";
        writeToFile(file1, uploadedFileLocation);

        return Response.ok().build();
    }

使用此代码,我可以获得HtmlInputFile作为InputStreamHtmlInputText作为String,但我想获得HtmlInputText的另一个属性,id, name, class甚至更多:我的动态属性如下:

<input type='text' myattr='myattr-value' name='inpp'/>
4

1 回答 1

1

提交表单时(根据WC3 规范),名称和值将发送到服务器。要获得其他值,我建议创建一些额外的隐藏输入。

<input type="hidden" name="valueOne" value="">
<input type="hidden" name="valueTwo" value="">

还有一些 javascript 在提交时设置这些字段。

<script>
    document.yourForm.elements["valueOne"].value = "someValue";
    document.yourForm.elements["valueTwo"].value = "someOtherValue";
</script>

<form name="yourForm" method="POST" onSubmit="setValues();">

但是,您可能想问为什么 id 和类对表单提交很重要。这种类型的设计可能会将您的后端控制器与前端标记耦合得太紧。这可能会导致一些问题。

于 2012-12-09T14:46:06.177 回答