No JSP, como obtenho parâmetros da URL?
Por exemplo, eu tenho uma URL www.somesite.com/Transaction_List.jsp?accountID=5
que quero obter 5.
Existe um request.getAttribute ("accountID") como existe para sessões ou algo semelhante?
No JSP, como obtenho parâmetros da URL?
Por exemplo, eu tenho uma URL www.somesite.com/Transaction_List.jsp?accountID=5
que quero obter 5.
Existe um request.getAttribute ("accountID") como existe para sessões ou algo semelhante?
Respostas:
Em uma solicitação GET, os parâmetros de solicitação são obtidos da cadeia de consulta (os dados após o ponto de interrogação na URL). Por exemplo, o URL http://hostname.com?p1=v1&p2=v2 contém dois parâmetros de solicitação - - p1 e p2. Em uma solicitação POST, os parâmetros da solicitação são obtidos da cadeia de consulta e dos dados postados que são codificados no corpo da solicitação.
Este exemplo demonstra como incluir o valor de um parâmetro de solicitação na saída gerada:
Hello <b><%= request.getParameter("name") %></b>!
Se a página foi acessada com o URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
a saída resultante seria:
Hello <b>John Smith</b>!
Se o nome não for especificado na string de consulta, a saída seria:
Hello <b>null</b>!
Este exemplo usa o valor de um parâmetro de consulta em um scriptlet:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
Sobre os objetos implícitos da Unified Expression Language , o Tutorial do Java EE 5 escreve:
Objetos implícitos
A linguagem de expressão JSP define um conjunto de objetos implícitos:
pageContext
: O contexto para a página JSP. Fornece acesso a vários objetos, incluindo:
servletContext
: O contexto para o servlet da página JSP e quaisquer componentes da web contidos no mesmo aplicativo. Consulte Acessando o contexto da Web.session
: O objeto de sessão para o cliente. Consulte Manutenção do estado do cliente.request
: A solicitação que aciona a execução da página JSP. Consulte Obtenção de informações de solicitações .response
: A resposta retornada pela página JSP. Consulte Construindo respostas.- Além disso, estão disponíveis vários objetos implícitos que permitem fácil acesso aos seguintes objetos:
param
: Mapeia um nome de parâmetro de solicitação para um único valorparamValues
: Mapeia um nome de parâmetro de solicitação para uma matriz de valoresheader
: Mapeia um nome de cabeçalho de solicitação para um único valorheaderValues
: Mapeia um nome de cabeçalho de solicitação para uma matriz de valorescookie
: Mapeia um nome de cookie para um único cookieinitParam
: Mapeia um nome de parâmetro de inicialização de contexto para um único valor- Por fim, existem objetos que permitem acesso às várias variáveis de escopo descritas em Usando objetos de escopo.
pageScope
: Mapeia nomes de variáveis no escopo da página para seus valoresrequestScope
: Mapeia nomes de variáveis com escopo de solicitação para seus valoressessionScope
: Mapeia nomes de variáveis com escopo de sessão para seus valoresapplicationScope
: Mapeia nomes de variáveis com escopo do aplicativo para seus valores
As partes interessantes estão em negrito :)
Portanto, para responder sua pergunta, você deve acessá-la desta maneira (usando EL):
${param.accountID}
Ou, usando Scriptlets JSP (não recomendado):
<%
String accountId = request.getParameter("accountID");
%>
Use EL (linguagem de expressão JSP):
${param.accountID}
<c:out value="${param.accountID}" />
para fazer isso.
Se posso adicionar um comentário aqui ...
<c:out value="${param.accountID}"></c:out>
não funciona para mim (ele imprime um 0).
Em vez disso, isso funciona:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
é o que você está procurando. Isso faz parte da API do Java Servlet. Consulte http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html para obter mais informações.
exemplo que você deseja excluir o registro de assunto com seu subject_id
@RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET)
public ModelAndView delete(@PathVariable int subjectid) {
subjectsDao.delete(subjectid);
return new ModelAndView("redirect:/subject_setup");
}
e o parâmetro será usado para entrada na sua consulta
public int delete(int subjectid) {
String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
return template.update(sql);
}
www.somesite.com/Transaction_List.jsp?accountID=5
Para isso, URL
existe uma chamada de método request.getParameter
em java, se você quiser que um número seja convertido aqui int
, da mesma forma que o valor da string convertido string
. para sua exigência, basta copiar abaixo da linha na página,
int accountId =(int)request.getParameter("accountID");
agora você pode chamar esse valor usando accountId
na página inteira.
Aqui accountId
está o nome do parâmetro, você também pode obter mais de um parâmetro usando isso, mas isso não funciona. Ele só funcionará com o GET
método se você pressionar a POST
solicitação, e será um erro.
Espero que isso seja útil.