首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我应该何时使用h:outputLink而不是h:commandLink?

h:outputLink和h:commandLink是JavaServer Faces (JSF) 中的两个标签,用于在页面上创建链接。

h:outputLink用于创建一个普通的超链接,当用户点击链接时,会直接跳转到指定的URL。它不会触发任何服务器端的操作,只是简单地将用户导航到另一个页面或网站。

h:commandLink用于创建一个链接,当用户点击链接时,会触发一个服务器端的操作。它通常与一个服务器端的方法绑定,当用户点击链接时,会执行该方法并处理相应的逻辑。这个方法可以执行一些业务逻辑、更新数据、导航到其他页面等操作。

所以,当你只需要简单地创建一个跳转链接时,可以使用h:outputLink。例如,当你需要在页面上显示一个外部网站的链接时,你可以使用h:outputLink。

示例代码:

代码语言:html
复制
<h:outputLink value="https://www.example.com" target="_blank">Visit Example.com</h:outputLink>

当用户点击"Visit Example.com"链接时,会在新的标签页中打开https://www.example.com

而当你需要执行一些服务器端的操作时,例如提交表单、更新数据等,你应该使用h:commandLink。例如,当你需要在用户点击链接时执行一些业务逻辑并导航到另一个页面时,你可以使用h:commandLink。

示例代码:

代码语言:html
复制
<h:form>
  <h:commandLink value="Submit" action="#{bean.submit}" />
</h:form>

当用户点击"Submit"链接时,会触发bean.submit()方法的执行,并处理相应的逻辑。

总结起来,使用h:outputLink时,你只需要简单地创建一个跳转链接,而不需要执行服务器端的操作。而使用h:commandLink时,你需要执行一些服务器端的操作,并处理相应的逻辑。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么应该使用指针不是对象本身

问题 之前一直使用 Java,现在开始转向 C++。...发现使用 C++ 的人经常用指针表示对象,比如像下面这样: Object *myObject = new Object; 不是, Object myObject; 或者在调用成员函数的时候,都会这样...: myObject->testFunc(); 不是, myObject.testFunc(); 有点想不明白为什么这么做?...什么时候该使用 new? 你需要延长对象生命周期。 意思是说你想一直使用某个地址位置的变量,不是它的副本,对于后者,我们更应该使用 Object myObject; 的语法。 你需要很多内存。...当你确实要用动态内存分配的话,我们应该用智能指针或者其它的 RAII 技术来管理这部分资源。 什么时候该使用指针? 不过,除了动态分配内存之外,原始指针还有其它用途。

1.4K10
  • 在前端页面中使用Markdown并且优化a标签

    总共用了三种方法来增加target这一属性 直接暴力添加 最开始是这么考虑的,在项目中一般都是在文章内容里才会用到markdown的语法。一般情况下文章内容中的跳转都会使用新窗口打开。...使用!控制属性是否添加 要想能控制target属性,就要在[]()中使用某种符号进行标记。img标签对应的markdown的语法为![]()。借鉴img标签的语法,把叹号放到中括号里面[!]...在读了源码之后,是在 src/Tokenizer.js文件中的 link() 方法里打上的断点(在 474 行) 经过追踪,最终跟到了src/Tokenizer.js中的outputLink()方法中...效率上应该是有些不足(虽然实际情况没什么影响,但是毕竟要本着精益求精的态度不是吗,请允许装一下)。...还是应该继续优化代码,接下来就来到了终极的方法 究极大招,修改规则 即然不想从文本那里动手,那就要改变其匹配的规则。同样继续使用webstorm断点调试。

    80600

    C语言学生成绩管理系统详解

    大家好,又见面了,是你们的朋友全栈君。...不知道发了这篇博客会不会认为抄袭…害怕.jpg 一、系统概述 使用单向链表和文件作为基本数据结构,设计一个学生成绩管理程序,管理某学校学生成绩。...3]={ "女","男"}; //用于输出“男女”中文字符 int size=sizeof(struct StuLink); //节点字节大小 注意姓名是xm[20],是字符串;等级是...用于表示比较节点的地址 [11]p3:用于表示中间节点的地址 返回值:head 的地址 实现功能: 判断 head 是否为空,为空则返回 head 并且结束函数 进行排序,快速排序,交换连个节点的数据项,不是改变链表的节点信息...#include #include //枚举 enum sex{ women,man}; struct StuLink{ int

    2.9K20

    谈谈对 Reacitive 方法的理解

    不是的观点就是对的,但我认为,正是通过分享自己的观点,我们才能对行业中的事物达成共识,希望这些来之不易的见解能够对其他人有所帮助,并补充他们理解中缺失的部分。...当我 说“observable” 时,不是指的是像 RxJS 这样的可观察对象。指的是“可观察”这个词的常用用法,比如知道它什么时候发生了变化。...但关键是它是一个不可观察的值,以一种不允许框架知道(观察)值何时变化的方式存储在 JavaScript 中。...由于该值的存储方式不允许框架观察到变化,因此每个框架都需要一种方法来检测这些值何时发生变化,并将组件标记为脏组件。...相信每个框架都应该有一个可以处理所有用例的单一 Reacitive 模型,不是基于用例的不同 Reacitive 系统的组合。

    20030

    【译】Vue 3 Composition API: Ref vs Reactive

    最近在Vue 3上做了几场演讲,并且不断出现的一个问题是何时使用Ref vs Reactive来声明数据的响应式。...本文将重点介绍Ref vs Reactive,不是Composition API的机制,如果您对这方面的深入教程感兴趣,请告诉。...我们不应该在这里使用let吗?如果要使用console.log(title),则可能希望看到值Hello,Vue 3 !...const { x, y } = useMousePosition(); 总结 当我第一次开始使用Composition API创建组件时,很难理解何时需要ref()和何时需要reactive()...reactive()只能接收一个对象,我们可以把一些相关联的数据都放在这个对象里,可以提高代码的可读性。 如果逻辑可以复用可以使用组合式函数,这样其他组件也可以使用这个逻辑。

    1.9K31

    2032 年了,面试官居然还在问三大框架响应式的区别……

    以下是整理的原文: 想分享一下对当前响应式方法和格局的理解。以下是个人的观点和意见,其中一些可能有些激进,所以做好准备。(不是的观点是正确的,但这就是对这个世界的看法。)...此外,非常重视反馈,毕竟即使经过这么多年,的理解也更像是一个精心编织的网络,不是坚固的钢笼。...当我说“可观察”时,不是指像 RxJS 这样的 Observables。指的是可观察这个词的常见用法,即知道何时发生变化。“非可观察”意味着没有办法知道值在具体的时间点上发生了变化。...你如何知道何时运行脏检查算法?...认为每个框架应该有一个单一的响应式模型,可以处理所有的用例,不是基于用例的不同响应式系统的组合。

    33530

    学界 | Stuart Russell等人提交论文:机器人不应永远遵从人类指令

    为了实现这个目标,他提出了机器人在执行命令时的行为准则:「第一点,机器人的目标就是使得人类的意愿最大化的实现——机器应该使人类的意愿得到满足,不是让机器给我们创造一种让人类感觉不舒适生活。...然而,在长期看来,盲目遵从人类指令的系统也不是一个完美的选择。自动驾驶汽车应该在驾驶者试图在雪地高速行驶时拒绝命令,也不应该在儿童试图手动驾驶时交出控制权。...盲目遵从指令的机器人总是听从 H 的命令(左); ARL-R 计算了 H 的潜在喜好,根据估算做出反应。 ? 图 2. 自我驱动优先(Δ,左侧)和遵从指令(O,右侧)随着时间步增加的表现 ?...当 H 提出的指令趋向于无理,Δ趋向于高收敛,但速率较慢 ? 图 4. 当θ错误时,Δ和 O 的表现 研究人员认为,实用化机器人必须在远期学会自主地决定何时遵从命令,何时不遵从。...但在同时,更重要的是必须保证机器人在做出反应后具有足够的容错性,因为机器人使用的模型也可能出错。

    76560

    你会在你的WebRTC 应用程序中使用哪种视频编解码器呢?

    在WebRTC应用程序中使用VP8还是H.264呢? ? 今天?您可能正在使用VP8或H.264 ——或者应该正在使用VP8或H.264。 那么两者之间有什么真正的区别?不,也不能这样说。...扔骰子来决定… WebRTC中的VP8/H.264或VP9? ? 这是一个真正需要思考的问题。您应该使用VP9吗?去年,曾建议这可能是一个使用VP9的好时机。...但是差不多应该到时候了。但问题是具体什么时候。 何时在WebRTC中使用HEVC? ? 这个答案很简单-永远不会。...据我所知,今天使用AV1的原因有两个: 1.要处理某些特定情况,例如非常低的比特率(CPU不是瓶颈,但带宽是瓶颈) 2.当您仅需要解码,编码器在云端时——一个您控制硬件的地方。...只有VP8和H.264。就是这样的情况。但是现在呢?我们可以随时提供4-5个视频编解码器供您选择。 我们大多数人最终使用VP8并没有什么原因。也有些人选择了H.264,主要是出于对性能方面的考虑。

    94830

    改变世界的3页内容

    通过这一测试会让人觉得使用的工艺流程值得信赖,符合业内已经颁布的标准,所有一切都进展顺利,可能是这样,也可能不是。这是在技术高度先进的组件上采用过时的验收标准所带来的重大问题之一。...关键是如果这家公司预先做了更多的测试,以确定测试用标准板的ROSE测试结果应该达到的要求,不是盲目地采用1.56g/cm2这一数值,就可能会在小问题变为大问题之前发现问题。...任何时候都没有人根据经验说1.56μg/cm2对产品和工艺无效,只需要证明这项测试可以表示PCB已经清洗干净。第3条注释是说在高温和湿度条件下,使用正常的操作电源对带电产品进行电气测试。...如果有历史数据表明PCB没有污染问题,ROSE测试仪得出的平均值是20或200µg/cm2,这就是你需要对该特定组件使用的数字。...确信J-STD-001H第8章和WP-019B中已经提供了关于如何生成客观证据的信息。正如我之前多次提及,要对自己的工艺质量和可靠性负责,且J-STD-001H版标准可以帮助行业提升质量和可靠性。

    85840

    开源BI工具Metabase安装

    H2(默认) Metabase实例使用H2数据库,不需要做其他配置。当应用程序首次启动时,它将尝试在启动应用程序的相同文件系统位置创建一个新的H2数据库。...换句话说,MBDBFILE应该是类似的东西/path/to/metabase.db,不是类似的东西/path/to/metabase.db.mv.db(尽管这是实际创建的文件)。...但是如果您希望在另一个端口上运行应用程序,则可以通过设置以下环境变量来实现: export MB_JETTY_PORT=12345 java -jar metabase.jar 在本例中,一旦应用程序启动,您将在端口上访问它,12345不是默认端口...配置您的JVM以使用您想要用于报告的相同时区,这在理想情况下也应该与数据库的时区匹配。...将元数据库设置Report Timezone为与要查看报告的时区相匹配,再次,这应该与您所做的其他时区设置相匹配。 常见陷阱: 您的数据库使用的日期/时间列没有任何时区信息。

    2.6K10

    salesforce零基础学习(七十四)apex:actionRegion以及apex:actionSupport浅谈

    常用的apex:commandButton,apex:commandLink,apex:actionFunction,apex:actionSupport。他们进行操作的时候,会将整个表单提交。...但是我们很多时候的需求,只是希望提交一部分内容,不是全部。这个时候,我们就需要用到apex:actionRegion....一.apex:actionRegion apex:actionRegion为当一个ajax请求生成的时候,可以通过它来区分哪部分区域/组件可以应该被Force.com Service处理,只有在actionRegion...apex:actionRegion用于apex:form中涉及到表单提交指定区域块或者组件的内容,如果一个表单提交请求需要提交整个页面,则不必使用apex:actionRegion。  ...总结:使用actionRegion和actionSupport可以更加灵活的提交表单,提升表单提交的性能。内容描述错误的地方欢迎指出,有问题欢迎留言。

    1.7K70

    快来使用 React-Hook-Form 搭建强大的React表单

    为了应用这个验证,我们可以将minLength的约束设置为6,但是maxLength应该是20: <input name="username" ref={register({ required...(假设这个输入是关于人的年龄的),我们将使用属性min和max不是minLength和maxLength。...我们可以从 useForm 中获取一个 errors对象,不仅仅是不提交表单。 就像我们在 onSubmit 中获得的数据函数一样,errors 包含对应于每个输入名称的属性,如果它有错误的话。...它为我们提供了重要的信息,比如何时输入了某些内容,以及何时提交了表单。 因此,如果你想禁用表单的按钮,以确保表单没有提交过多次,我们可以将禁用设置为formstate.issubmitted。...总结 希望本文向您展示了如何在React应用程序中更容易地创建功能性表单。 还有很多与react-hook形式相关的特性没有在这里介绍。点击这里,官方文档应该涵盖你能想到的任何用例。

    3.7K21

    优思学院|如何利用5W1H建立清晰的六西格玛项目陈述?

    5W1H方法是要针对问题作出提问以收集最全面的资讯,包括何人(Who)、何事(What)、何时(When)、何地(Where)、为何(Why)及如何(How)或者多少(How Many)。...如果能够准确地回答这些问题,你会对当前的情况有更全面的了解,就像大多数工具一样,在团队中使用5W1H方法会比自己一个人使用该方法带来更多的价值,这也是一种团队工具。...5W1H 问题实例5W1H 没有固定的问题内容,关键是多方面收集重要的资讯。在这里有一些例子让你知道利用 5W1H 提问的方法。WHO:谁发现了这个问题?谁受到了问题的影响(什么客户)?...WHEN:问题何时发生?客户在流程中何时遇到问题?什么时候第一次发现的?WHY:为什么对客户来说是个问题?我们为什么需要解决这个问题?HOW MANY:问题发生了多少次?客户受影响的次数是多少?...我们关注的是创建一个问题陈述,还不是解决这个问题,因为我们在问题的定义阶段,应该避免跳到结论,六西格玛项目的重点在于利用数据分析的手法,进行原因的分析。

    63410

    Java Concurrent AQS原理&源码概要(Java 10)

    下面看AQS持有的对象成员,把注释翻译一下,可能就很清晰了,如果不正确,肯请指正,能及时修改。...*实际能更快地旋转而不是使用固定的纳秒数。粗略的估计足以在很短的时间内提高响应能力。...如果线程应该阻塞,返回true。这是所有获取循环的主要信号控制。要求pred = node.prev。...它具有与{@link #getQueuedThreads}相同的属性,但是它只返回由于独占获取等待的线程。...注意,由于超时和中断可能在任何时候发生,因此估计仅作为实际服务员数量的上限。这种方法设计用于监视系统状态,不是用于同步控制。 以下几个都是不能保证完全正确的估略值。

    70830
    领券