una servlet recibir que parametros metodo getparameter enviar datos clase forms jsp servlets retain

forms - servlet - recibir parametros en jsp



¿Cómo puedo conservar los valores de campo de formulario HTML en JSP después de enviar el formulario a Servlet? (2)

Para la declaración de selección tal vez solo puede usar javascript.

document.getElementById(''baz'').value = ''${param.baz}'';

Después de enviar datos en el HTML desde, un servlet agrega estos datos a mi base de datos y reenvía un mensaje de resultado a una página JSP. Deseo conservar los valores enviados inicialmente en el formulario después del reenvío.

¿Es sensato hacer un objeto en un servlet y agregar todos los parámetros que recibo y enviarlo con una solicitud a JSP? ¿Hay alguna otra forma mejor?


Puede acceder a los parámetros de solicitud de valor único por ${param} .

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> ... <input name="foo" value="${fn:escapeXml(param.foo)}"> <textarea name="bar">${fn:escapeXml(param.bar)}</textarea> ... <input type="radio" name="faz" value="a" ${param.faz == ''a'' ? ''checked'' : ''''} /> <input type="radio" name="faz" value="b" ${param.faz == ''b'' ? ''checked'' : ''''} /> <input type="radio" name="faz" value="c" ${param.faz == ''c'' ? ''checked'' : ''''} /> ... <select name="baz"> <option value="a" ${param.baz == ''a'' ? ''selected'' : ''''}>label a</option> <option value="b" ${param.baz == ''b'' ? ''selected'' : ''''}>label b</option> <option value="c" ${param.baz == ''c'' ? ''selected'' : ''''}>label c</option> </select>

Tenga en cuenta que JSTL fn:escapeXml() es necesario para evitar ataques XSS. Consulte también la prevención XSS en la aplicación web JSP / Servlet .

Puede acceder a los parámetros de solicitud de múltiples valores por ${paramValues} y EL 3.0 streams.

<input type="checkbox" name="far" value="a" ${paramValues.far.stream().anyMatch(v->v == ''a'').get() ? ''checked'' : ''''} /> <input type="checkbox" name="far" value="b" ${paramValues.far.stream().anyMatch(v->v == ''b'').get() ? ''checked'' : ''''} /> <input type="checkbox" name="far" value="c" ${paramValues.far.stream().anyMatch(v->v == ''c'').get() ? ''checked'' : ''''} /> ... <select name="boo" multiple> <option value="a" ${paramValues.boo.stream().anyMatch(v->v == ''a'').get() ? ''selected'' : ''''}>label a</option> <option value="b" ${paramValues.boo.stream().anyMatch(v->v == ''b'').get() ? ''selected'' : ''''}>label b</option> <option value="c" ${paramValues.boo.stream().anyMatch(v->v == ''c'').get() ? ''selected'' : ''''}>label c</option> </select>