Deseo enviar cadena como respuesta al método AJAX xhrPOST. Estoy usando Struts2 para implementar el procesamiento del lado del servidor. Pero no entiendo cómo enviar el resultado "tipo" como cadena y la asignación que se debe hacer para enviar la cadena de la clase de acción struts2 a la respuesta AJAX.Tipo de resultado de cadena de retorno de Struts2
Respuesta
Puede crear un StringResult simple con bastante facilidad extendiendo StrutsResultSupport, pero hasta ahora no existe nada incorporado al marco.
Aquí es una implementación que he utilizado en el pasado de una simple StringResult:
public class StringResult extends StrutsResultSupport {
private static final Log log = LogFactory.getLog(StringResult.class);
private String charset = "utf-8";
private String property;
private String value;
private String contentType = "text/plain";
@Override
protected void doExecute(String finalLocation, ActionInvocation invocation)
throws Exception {
if (value == null) {
value = (String)invocation.getStack().findValue(conditionalParse(property, invocation));
}
if (value == null) {
throw new IllegalArgumentException("No string available in value stack named '" + property + "'");
}
if (log.isTraceEnabled()) {
log.trace("string property '" + property + "'=" + value);
}
byte[] b = value.getBytes(charset);
HttpServletResponse res = (HttpServletResponse) invocation.getInvocationContext().get(HTTP_RESPONSE);
res.setContentType(contentType + "; charset=" + charset);
res.setContentLength(b.length);
OutputStream out = res.getOutputStream();
try {
out.write(b);
out.flush();
} finally {
out.close();
}
}
public String getCharset() {
return charset;
}
public void setCharset(String charset) {
this.charset = charset;
}
public String getProperty() {
return property;
}
public void setProperty(String property) {
this.property = property;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
}
He utilizado el json plugin hacer cosas similares. Si utiliza esto, puede utilizar el siguiente para exponer una sola propiedad de cuerdas en su acción:
<result name="success" type="json">
<param name="root">propertyToExpose</param>
</result>
usted puede tener su método de acción de retorno no un resultado de cuerdas, sino el resultado de tipo StreamResult.
En otras palabras:
class MyAction {
public StreamResult method() {
return new StreamResult(new ByteArrayInputStream("mystring".getBytes()));
}
}
Usted no necesariamente tiene que devolver una cadena a partir de un método de acción Struts2. Siempre puede devolver una implementación de la interfaz de resultados de xwork.
copia esto en clase de la acción
private InputStream inputStream;
public InputStream getInputStream() {
return inputStream;
}
public String execute(){
inputStream = new StringBufferInputStream("some data to send for ajax response");
return SUCCESS;
}
struts.xml
<action name=....>
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
Esto funciona cuando queremos enviar un solo dato en respuesta
¿Qué hacemos para obtener este valor de cadena en jsp page.plz ayuda. –
StringBufferInputStream está en desuso. intente en su lugar: ByteArrayInputStream ("some ... response" .getBytes()); – fishjd
- 1. Cuándo utilizar redirección y resultado cadena tipos en struts2
- 2. C#, tipo de retorno dinámico
- 3. Scala Tipo de retorno
- 4. no se puede establecer el tipo de resultado Struts2 a json
- 5. Struts2 Acción que se llama dos veces si el tipo de resultado es json
- 6. Trimming Struts2 cadena de campo de texto de entrada
- 7. Scala tipo de retorno al extender colección
- 8. El tipo de retorno vacío
- 9. nula Retorno de método NSInteger tipo de retorno
- 10. resultado inesperado de tipo GNU
- 11. DataContract y tipo de retorno dinámico WCF
- 12. controladores Spring MVC Tipo de retorno
- 13. C++ tipo de retorno nulo de main()
- 14. tipo de retorno de una función dinámica
- 15. C++ sobrecarga de tipo de retorno hackear
- 16. Tipo de retorno de Java métodos genéricos
- 17. Java - Retorno tipo correcto de método genérico
- 18. Tratar de entender cómo funciona un tipo de retorno puntero
- 19. Tipo de retorno en la expresión Si
- 20. Efecto del tipo de retorno siendo estático
- 21. Ctor no permitido tipo de retorno
- 22. Tipo de retorno covariante en Java
- 23. Tipo de retorno muy largo expresión
- 24. java.lang.IllegalStateException: valor de retorno incompatible tipo
- 25. Tipo de retorno Scala para funciones tuple
- 26. ¿Cómo deducir el tipo de valor de retorno del funtor?
- 27. resultado retorno entre las formas de Windows en C#
- 28. parámetro del método Modificar dentro de método o retorno resultado
- 29. Javascript - cadena de retorno entre corchetes
- 30. PHP: cadena de retorno entre dos caracteres
Probablemente significaba * devolver nueva StreamResult (nuevo ByteArrayInputStream ("mystring" .getBytes())); * Esto ayudó, gracias –