当前位置: 首页 > 面试题库 >

如何从xhtml中的commandButton重定向到Servlet

韩景胜
2023-03-14
问题内容

我已经麻烦了几天了。希望这可以更清洁,以前做过的人可以帮助我!

我正在Tomcat 7.0服务器上运行的Eclipse中使用JSF
2.0构建WebApp。并且已经制作了一个我想去的servlet,但是我不知道如何分配导航规则来带我去:

在我的项目中,路径为src / com / servlets / PdfServlet,因此当我在服务器上运行项目时,可以通过url
localhost:8080 / miloWeb / PdfServlet访问该servlet。servlet实际上会为我创建一个Pdf文件并显示它。

无论如何,我的xhtml具有:

<h:commandButton id="reportButton"  action="reportPdf" styleClass="button" value="get Report" ></h:commandButton>

我的faces-config导航规则如下所示:

<navigation-rule>
    <navigation-case>
        <from-outcome>reportPdf</from-outcome>      
        <to-view-id>/miloWeb/PdfServlet</to-view-id>
        <redirect />
    </navigation-case>
</navigation-rule>

但是我需要将其带到miloWeb / faces / miloWeb / PdfServlet,并且需要它才能带我到miloWeb /
PdfServlet。

关于如何完成此操作或其他路线或操作的任何想法?


问题答案:

首先,导航规则仅适用于JSF。他们无法帮助您导航到servlet。

faces-config中的导航规则在JSF2.0中是多余的。它们由JSF隐式处理,基于操作方法返回的值(结果)。"?faces- redirect=true"可以附加到结果的末尾以进行重定向。

我不知道您的功能要求是什么。您正在尝试将JSF和servelts混合使用,这不是一个好主意。

<h:commandButton id="reportButton"  action="reportPdf"

action属性的值必须是解析为某些JSF托管Bean中的方法的方法表达式。例如action="#{controllerBean.axnMethod()}"

axnMethod()被调用时,一个选择是重定向从那里到servlet。如下所示:

FacesContext.getCurrentInstance().getExternalContext().redirect("url");

或者,只需要调用servlet,然后在视图上,只需放置一个带有调用servlet的URL的链接即可。



 类似资料:
  • 我有一个带有登录表单的jsp页面,我使用的是servlet,如果用户名和密码正确,servlet会将用户重定向到另一个页面,否则它会再次将用户重定向到登录页面 下面是servlet

  • 问题内容: 我已经设置了TLS,它可以工作。我知道如何在nginx中从http重写为https,但是我不再使用nginx。我不知道如何在Go中正确执行此操作。 我将如何以一种好的方式做到这一点? 问题答案: 创建一个处理程序,以处理重定向到https的操作,例如: 然后重定向http流量:

  • 问题内容: 从上一页收集到数据后,我想向客户显示另一页。但是我在服务器端重定向新URL时遇到麻烦。这是我的逻辑: 将带有POST操作的用户输入提交给服务器; 服务器运行函数saveChoice()将用户输入保存到数据库中; 保存用户输入后,服务器将新的URL发送给客户端。 当客户端获取新URL时,服务器读取数据库并取出保存的数据 我坚持执行第3步(这里是流程示例): 这是模板: 我可以知道如何重定

  • 这是怎么造成的,我该怎么解决?

  • 问题内容: 我正在编写servlet,以防万一,我将重定向到自定义错误页面,因为这样做是这样的。 在web.xml中 在Servlet中, 但是这里没有显示,我要去哪里出错了,谁能解释一下我? 问题答案: 问题是您捕获了Exception,因此没有Exception将离开您的方法。如果匹配项(相同或相同的子类)离开您的方法,则只会重定向错误页面。 您应该将捆绑包重新扔入例如: 不幸的是,如果我们谈

  • 奇怪的问题。我使用FullCalendar向服务器上的endpoint发起ajax请求。终点是: 请注意,它是显式的HTTPS。但是,当我发起一个请求时(即当Fullcalendar发起一个请求时),我会得到一个301和一个到非HTTPSendpoint的重定向: 因为页面是通过HTTPS加载的,所以失败。 endpoint工作正常--当我将它加载到浏览器中时,我会得到预期的json输出(通过ht