En JSP, ¿cómo obtengo parámetros de la URL?
Por ejemplo, tengo una URL www.somesite.com/Transaction_List.jsp?accountID=5
que quiero obtener el 5.
¿Hay una request.getAttribute ("accountID") como la hay para las sesiones o algo similar?
En JSP, ¿cómo obtengo parámetros de la URL?
Por ejemplo, tengo una URL www.somesite.com/Transaction_List.jsp?accountID=5
que quiero obtener el 5.
¿Hay una request.getAttribute ("accountID") como la hay para las sesiones o algo similar?
Respuestas:
En una solicitud GET, los parámetros de la solicitud se toman de la cadena de consulta (los datos que siguen al signo de interrogación en la URL). Por ejemplo, la URL http://hostname.com?p1=v1&p2=v2 contiene dos parámetros de solicitud: - p1 y p2. En una solicitud POST, los parámetros de la solicitud se toman tanto de la cadena de consulta como de los datos publicados que están codificados en el cuerpo de la solicitud.
Este ejemplo muestra cómo incluir el valor de un parámetro de solicitud en la salida generada:
Hello <b><%= request.getParameter("name") %></b>!
Si se accedió a la página con la URL:
http://hostname.com/mywebapp/mypage.jsp?name=John+Smith
el resultado resultante sería:
Hello <b>John Smith</b>!
Si no se especifica el nombre en la cadena de consulta, el resultado sería:
Hello <b>null</b>!
Este ejemplo utiliza el valor de un parámetro de consulta en un scriptlet:
<%
if (request.getParameter("name") == null) {
out.println("Please enter your name.");
} else {
out.println("Hello <b>"+request. getParameter("name")+"</b>!");
}
%>
Acerca de los objetos implícitos del lenguaje de expresión unificado , el Tutorial Java EE 5 escribe:
Objetos implícitos
El lenguaje de expresión JSP define un conjunto de objetos implícitos:
pageContext
: El contexto para la página JSP. Proporciona acceso a varios objetos, incluidos:
servletContext
: El contexto para el servlet de la página JSP y cualquier componente web contenido en la misma aplicación. Consulte Acceso al contexto web.session
: El objeto de sesión para el cliente. Consulte Mantenimiento del estado del cliente.request
: La solicitud desencadena la ejecución de la página JSP. Consulte Obtención de información de solicitudes .response
: La respuesta devuelta por la página JSP. Ver Construcción de respuestas.- Además, hay varios objetos implícitos disponibles que permiten un fácil acceso a los siguientes objetos:
param
: Asigna un nombre de parámetro de solicitud a un valor únicoparamValues
: Asigna un nombre de parámetro de solicitud a una matriz de valoresheader
: Asigna un nombre de encabezado de solicitud a un valor únicoheaderValues
: Asigna un nombre de encabezado de solicitud a una matriz de valorescookie
: Asigna un nombre de cookie a una sola cookieinitParam
: Asigna un nombre de parámetro de inicialización de contexto a un valor único- Finalmente, hay objetos que permiten el acceso a las diversas variables de ámbito descritas en Uso de objetos de alcance.
pageScope
: Asigna nombres de variables de ámbito de página a sus valoresrequestScope
: Asigna nombres de variables con ámbito de solicitud a sus valoressessionScope
: Asigna nombres de variable de ámbito de sesión a sus valoresapplicationScope
: Asigna nombres de variables con ámbito de aplicación a sus valores
Las partes interesantes están en negrita :)
Entonces, para responder a su pregunta, debería poder acceder a ella de esta manera (usando EL):
${param.accountID}
O, usando JSP Scriptlets (no recomendado):
<%
String accountId = request.getParameter("accountID");
%>
Utilice EL (lenguaje de expresión JSP):
${param.accountID}
<c:out value="${param.accountID}" />
para hacer eso.
Si puedo agregar un comentario aquí ...
<c:out value="${param.accountID}"></c:out>
no funciona para mí (imprime un 0).
En cambio, esto funciona:
<c:out value="${param['accountID']}"></c:out>
request.getParameter("accountID")
es lo que estás buscando Esto es parte de la API de Java Servlet. Consulte http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html para obtener más información.
ejemplo que desea eliminar el registro de asunto con su 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");
}
y el parámetro se usará para ingresar su 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 esto, URL
hay una llamada al método request.getParameter
en Java, si desea que se introduzca un número aquí int
, de manera similar para el valor de cadena emitido string
. así que para su requerimiento, simplemente copie más allá de la línea en la página,
int accountId =(int)request.getParameter("accountID");
ahora puede llamar a este valor utilizando accountId
en toda la página.
aquí accountId
está el nombre del parámetro, también puede obtener más de un parámetro con esto, pero esto no funciona. Solo funcionará con el GET
método si aciertas la POST
solicitud, entonces será un error.
Espero que esto sea útil.