簡體   English   中英

從服務器中的jsp頁面讀取參數

[英]Reading parameters from jsp page in the server

在我的Spring項目中,我的服務類正在捕獲以這種方式通過POST方法從表單發送的參數,目前:

@Transactional
@PreAuthorize("hasPermission(#user, 'cadastra_fornecedor')")
public boolean cadastra(HttpServletRequest request, HttpServletResponse response) {
    String identificador = request.getParameter("identificador");
    String nome = request.getParameter("nome");
    String website = request.getParameter("website");
    String[] endereco2 = request.getParameterValues("endereco[]");
    String[] contato2 = request.getParameterValues("contato[]");

    Fornecedor f = new Fornecedor();
    f.setRazao_social(nome);
    f.setWebsite(website);
    if(identificador.length() == 14)
        f.setCnpj(identificador);
    else if(identificador.length() == 11)
        f.setCpf(identificador);

    List<Endereco> lista_endereco = new ArrayList<Endereco>();
    if(endereco2 != null) {
        int max = endereco2.length;
        for(int i=0; i<max; i++) {
            int id = Integer.valueOf(endereco2[i]).intValue();
            lista_endereco.add(endereco.findById(id));
        }
        f.setEndereco(lista_endereco);
    }


    List<Contato> lista_contato = new ArrayList<Contato>();
    if(contato2 != null) {
        int max = contato2.length;
        for(int i=0; i<max; i++) {
            int id = Integer.valueOf(contato2[i]).intValue();
            lista_contato.add(contato.findById(id));
        }
        f.setContato(lista_contato);
    }

    return fornecedor.persist(f);
}

我正在嘗試尋找另一種讀取此參數的方法,而無需使用getParameter(或getParaterValues)方法逐一讀取。

每個服務類都與我的Entity類之一相關,來自form的字段名稱與表中的屬性名稱相同,並且它們都是數組,都是另一個實體的主鍵列表。

任何人都知道是否存在可以使用以上信息一次讀取所有參數的解決方案?

(我試圖為我的控制器和服務類創建一個通用類來對這個commons方法進行分組。我想知道是否存在一種無需直接引用每個參數名稱的方法。)

我更喜歡這樣的解決方案:除了Spring之外,不使用其他框架。

我的建議是使用您的實體來傳遞參數。

您提到您已經有表單的Entity類,那么您應該可以使用

@ModelAttribute(value=" ")Entity entity

獲取所有表單參數,然后將此實體作為參數傳遞給服務方法?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM