获取FormDataParam属性和属性

时间:2012-12-09 14:23:16

标签: java web-services forms post jersey

    @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 作为 InputStream HtmlInputText 作为字符串,但我想获得 HtmlInputText 的另一个属性,如id, name, class甚至更多:我的动态属性如下:

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

1 个答案:

答案 0 :(得分:1)

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

<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和类对表单提交很重要。这种类型的设计可能会将后端控制器与前端标记过于紧密地耦合在一起。这可能会导致一些问题。