我对response.sendRedirect有一些问题,主要问题是我已经配置了struts.xml和responseServlet,但我可以调用一个类的方法而不是其他方法。
我可以打电话
response.sendRedirect是( “inicioRemesa600.action”);
但不能
response.sendRedirect是( “xmlFirmaRemesa600.action”);
两个方法都存在于同一个类中,并返回一个带有url bean的String
任何人都知道为什么??
public void signOK(FirmaInfoViafirma fiv, HttpServletRequest request,
HttpServletResponse response) {
log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_INICIO + "signOK");
// Recupera el context-param que verificará o no que la firma corresponda con la
// personalidad que figura como presentante del tramite:
String comprobarFirmante = request.getSession().getServletContext().getInitParameter("comprobarFirmante");
log.info(Claves.CLAVE_LOG_CONTEXT_PARAM + "comprobarFirmante: " + comprobarFirmante);
ViafirmaClient viafirmaClient=(ViafirmaClient)request.getSession().getServletContext().
getAttribute("viafirmaClient");
// Recupera el valor del atributo de request tipoMensajeFirmado
// para saber si lo que se ha firmado es un rm o un dpr:
String tipoMensajeFirmado=request.getSession().getAttribute("tipoMensajeFirmado").toString();
Integer modeloFirmado =(Integer)request.getSession().getAttribute("modeloFirmado");
request.getSession().setAttribute("tipoMensajeFirmado", null);
// Comprobación para firmar un XML de pago y presentacion de una remesa de Castilla y León
if(tipoMensajeFirmado!=null&&tipoMensajeFirmado.equals("documentacionEscritura")){
try{
// Comprueba que se ha firmado con un certificado cuyo nif coincide
// con el presentante del trámite:
if(comprobarFirmante.equalsIgnoreCase("si")){
String nifPresentante = (String) request.getSession().getAttribute("nifPresentanteTramite");
// Recupera el nif del certificado de las dos formas posibles:
String nifCertificadoFirmanteMapa = fiv.getProperties().get("numberIdResponsable");
String nifCertificadoFirmantePropiedad = fiv.getNumberUserId();
String nifCertificadoFirmante = null;
// Si la propiedad numberIdResponsable tiene el nif:
if(nifCertificadoFirmanteMapa != null && !nifCertificadoFirmanteMapa.equals("")){
nifCertificadoFirmante = nifCertificadoFirmanteMapa;
// Si la propiedad numberUserId tiene el nif:
}else if(nifCertificadoFirmantePropiedad != null && !nifCertificadoFirmantePropiedad.equals("")){
nifCertificadoFirmante = nifCertificadoFirmantePropiedad;
}
// Si el nifCertificadoFirmante no tiene valor, no se ha recuperado el nif del certificado
// de ninguna de las dos formas posibles:
if(nifCertificadoFirmante == null){
request.getSession().setAttribute("mensajeError","No se ha podido recuperar el nif " +
"del certificado con el que se ha firmado. No se ha podido comprobar que presentante " +
" y firmante son la misma persona. Cancelado el envío.");
log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK");
response.sendRedirect("discriminarError.action");
return;
}
if(!nifPresentante.equalsIgnoreCase(nifCertificadoFirmante)){
request.getSession().setAttribute("mensajeError","Se ha cancelado el envío. " +
"La firma de la documentación debe correr a cargo de la personalidad que figura " +
"como presentante del trámite. El nif de la persona que consta como presentante es " +
nifPresentante + " y el nif que consta en el certificado con el que se ha intentado firmar es " +
nifCertificadoFirmante);
log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK");
response.sendRedirect("discriminarError.action");
return;
}
}
String idFirma=fiv.getSignId();
// Pone en sesión la firma y el timestamp:
request.getSession().setAttribute("firmaRemesaBytes",XmlBuilderSupportUtils.getCMSSignatureWithOutTimeStampBytes(idFirma));
request.getSession().setAttribute("selloRemesaBytes",XmlBuilderSupportUtils.getTimeStampFromCMSbytes(idFirma));
log.info(Claves.CLAVE_LOG_SERVLET_VIAFIRMA_FIN + "signOK");
response.sendRedirect("xmlFirmaRemesa600.action");
答案 0 :(得分:0)
好的,问题是我有一个私有方法,你需要一个send.redirect的公共方法