¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como abrir uma nova janela ao clicar em um link em uma aplicação JSP

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 9 Vistas
0
Cargando...

Olá a todos!

Estou trabalhando em uma aplicação de página dinâmica JSP onde quero que o usuário final possa clicar em um link e abrir uma nova janela que exiba uma página JSP. Quero que esta página JSP possa ler todos os dados que tenho armazenados na memória.

Tentei usar o seguinte para o link:

<hbj:link

id="printableVersion"

onClick="PrintableVersionLinkClick"

target="_BLANK"

text="Versão Imprimível"

tooltip="Clique aqui para obter uma versão imprimível das informações deste fornecedor."

linkDesign="REPORTING"

>

</hbj:link>

Com isso na página dinâmica:

public void doProcessAfterInput() throws PageException {

}

public void doProcessBeforeOutput() throws PageException {

this.setJspName(nextJSP);

}

public void onPrintableVersionLinkClick(Event event) throws PageException {

nextJSP = "PrintableVersion.jsp";

}

O controle é transferido para o arquivo "PrintableVersion.jsp", no entanto, ele é exibido na mesma página onde o link foi mostrado. Como posso fazer com que ele apareça em uma nova janela?

Obrigado!

-Stephen Spalding

Desenvolvedor Web

Graybar

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá,

Como Joseph mencionou, o evento onClientClick será chamado primeiro se algum dos eventos ocorrer, então onClick será processado.

Portanto, ao chamar onClientClick, a JSP será aberta em uma nova janela e então seu evento onClick será chamado.

E mais uma coisa que você deve fornecer...

jsObjectNeeded="true" (obrigatório)

Código de exemplo para você...:

<hbj:link

id="go"

text="Ir"

jsObjectNeeded="true"

tooltip="ir"

onClientClick="javascript:onSubmit();"

onClick="doStart"

design="PEQUENO"

disabled="falso">

</hbj:link>

<Script language="javascript">

function onSubmit(){

var funcName = htmlb_formid+"_getHtmlbElementId";

func = window[funcName];

var goButton = eval(func("go"));

}

</Script>

Espero que isso ajude.

Saudações,

Karthick

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá Stephen,

Você precisa fazer assim.

<hbj:link id="myLink"

text = "Link para SDN"

reference = "http://sdn.sap.com"

tooltip = "Este link leva você ao SDN"

onClick = "LinkClick"

>

<% myLink.setOnClientClick("javascript:myFunction('thisisSAPstring');");%>

</hbj:link>

Na função, forneça o nome do arquivo com o caminho.

Saudações,

Joseph

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ok, tentei, mas continuo recebendo um erro de NoSuchMethodException. Aqui está o código que inseri:

<hbj:link

id="printableVersion"

onClick="JavaScript:window.open('SupplierProfile.PrintableVersion');"

target="_BLANK"

text="Versão Imprimível"

tooltip="Clique aqui para obter uma versão imprimível das informações deste fornecedor."

linkDesign="REPORTING">

</hbj:link>

O nome do jsp que desejo que apareça é PrintableVersion.jsp.

Devo criar uma página dinâmica e um perfil para que seja chamado ao executar o comando onClick="JavaScript:window.open('SupplierProfile.PrintableVersion');"?

Aqui está a mensagem de erro que estou recebendo:

com.sapportals.portal.prt.component.PortalComponentException: Exceção durante PageProcessorComponent.doContent()

em com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:143)

em com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)

em com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)

em com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)

em com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)

em com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)

em com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)

em com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)

em com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)

em com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:730)

em com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)

em com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:635)

em javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

em com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)

em javax.servlet.http.HttpServlet.service(HttpServlet.java:853)

em com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:147)

em com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:789)

em com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:644)

em com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:305)

em com.inqmy.services.httpserver.server.Response.handle(Response.java:166)

em com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1152)

em com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)

em com.inqmy.core.cluster.impl3.ParserRunner.run(ParserRunner.java:30)

em com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)

em java.security.AccessController.doPrivileged(Native Method)

em com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:132)

Causado por: java.lang.NoSuchMethodException

em java.lang.Class.getMethod0(Native Method)

em java.lang.Class.getMethod(Fonte Desconhecida)

em com.sapportals.htmlb.page.DynPage.doProcessCurrentEvent(DynPage.java:150)

em com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:95)

em com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:139)

em com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:127)

em com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)

em com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)

em com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:231)

em com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:475)

em com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:291)

em com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:198)

em com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:483)

em com.sapportals.portal.prt.portalconnection.sapnative.DelegatedPlugIn.handleRequest(DelegatedPlugIn.java:730)

em com.sapportals.portal.prt.portalconnection.sapnative.PortalPlugIn.handleRequest(PortalPlugIn.java:132)

em com

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá,

Experimente isso

<hbj:link

id="printableVersion"

onClick="JavaScript:window.open('ProjectName.JspName');"

target="_BLANK"

text="Versão imprimível"

tooltip="Clique aqui para obter uma versão imprimível das informações deste fornecedor."

linkDesign="REPORTING"

>

</hbj:link>

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?