的getParameter();返回null

时间:2014-11-20 20:40:47

标签: java javascript json get null

我的HTML看起来像:

<form id="idForm3">
    <center>
        <fieldset style="width:30%;">
            <legend>Edit Elements:</legend>
                        Nome:<input type="text" size="20" maxlength="20" value="" name="TEXT_EDIT">&nbsp;
                        Preço:<input type="text" size="15" maxlength="15" value="" name="PRICE_EDIT"><br><br>
                        <input type="button" value="EDIT SELECTED" style="color:blue;"
                               onclick="var textSelected = document.getElementById('idSelect6').value;
                               editProductService(textSelected);">
         </fieldset>
     </center>
</form>

当我这样做时:

@GET
@Produces("application/json")
@Path("/{text}")
public void getJson(@Context HttpServletRequest request, @PathParam("text")String text) {
    boolean success;

    Tabela2colunasDTO.Produto produtoDTO;
    Tabela2colunasDTO dto = new Tabela2colunasDTO();

    produtoDTO = dto.getInstanceProduto();
    produtoDTO.text = text;
    produtoDTO.price = request.getParameter("PRICE_EDIT");

    System.out.println("request: "+ request.getParameter("PRICE_EDIT"));
    System.out.println("DTO text : "+produtoDTO.text);
    System.out.println("DTO price : "+produtoDTO.price);

    sucesso = (new ProdutosDAO()).doUpdate(produtoDTO);
    System.out.println("editar sucesso: "+success);


}

我试图获取所选文字并在我的数据库中更改其价格,但produtoDTO.price收到空,produtoDTO.text完美无缺。

我怀疑GET不能与request.getParameter()

一起使用

3 个答案:

答案 0 :(得分:0)

由于它是GET,因此您的参数需要位于查询字符串中,类似于传入“text”的方式。所以在您的网址末尾:

  ?

文本=财产以后&安培; PRICE_EDIT = somethingElse

答案 1 :(得分:0)

我使用POST方法修改了问题并添加了一行request.getParts();

实际代码是:

    @POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
@Produces("application/json")
@Path("/{text}")
public void postEditar3(@Context HttpServletRequest request, @PathParam("text")String texto) {
    boolean sucesso;
    try {

        request.getParts();

        Tabela2colunasDTO.Produto produtoDTO;
        Tabela2colunasDTO dto = new Tabela2colunasDTO();

        produtoDTO = dto.getInstanceProduto();
        produtoDTO.text = text;
        produtoDTO.price = request.getParameter("PRICE_EDIT");


        success = (new ProdutosDAO()).doUpdate(produtoDTO);
        System.out.println("passou do sucesso doUpdate: "+success);

    } catch (IOException | ServletException e) {
    }
}

答案 2 :(得分:0)

你不应该使用@PathParam,你需要@QueryParam