JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能
Java企业版JavaEE 6+中提供的JSF 2+的一项不错的功能是,您可以将参数传递给任何操作组件(例如commandButton或commandLink组件)的操作方法。
基于此,您可以最大程度地减少托管bean中的方法数量。另外,为了最小化在bean内部设置的许多参数,动作可以使用这些参数来决定导航逻辑,如果您的bean的作用域大于请求作用域,则可以减少内存消耗。
怎么运行的:
- 打开您喜欢的IDE,我将使用Netbeans 7.4.1 。 (使用任何支持JavaEE 6或7的IDE)。
- 创建Web项目。
文件–>新建项目–> Java Web(左窗格) –> Web应用程序(右窗格) –>下一步。 - 随便命名(对我来说就是JSFeatures ) –>下一步–>服务器Glassfish4 –> Java EE 7 Web配置文件–>上下文路径“ / JSFeatures” –>下一步。
- 从框架中选择“ Java Server Faces ” -> Finish。
- 您应该具有以下项目结构:
- 右键单击JSFeatures项目->新的“ JSF Managed Bean ”。 及其名称和配置如下:
- 在编辑器页面中打开Bean的情况下,将以下代码复制并粘贴到package语句之后:
import javax.faces.bean.ManagedBean; import javax.faces.bean.RequestScoped;/*** @author mohamed_taman*/ @ManagedBean(name = "jSFeatBean") @RequestScoped public class JSFeatursBean {private String result;public String getResult() {return result;}public void setResult(String result) {this.result = result;}public JSFeatursBean() {}public Object addNumbers(int num1,int num2) {setResult("Hi there I am an action method to add numbers.");return null;} }
- 打开默认生成的index.xhtml ,然后复制以下代码并将其粘贴到文件中:
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://xmlns.jcp.org/jsf/html"><h:head><title>Facelet Title</title></h:head><h:body>Hello from Facelets<h:form><p><h:outputText value="#{jSFeatBean.result}"/></p> <h:commandButton type="submit"value="Submit"action="#{jSFeatBean.addNumbers}"/></h:form></h:body> </html>
- 右键单击index.xhtml,然后单击–> 运行 ; 您应该会看到以下内容:
- 单击提交按钮,观察h:outputText值,其值应为“ Hi,我是一个操作方法。 “
- 现在一切正常。 让我们做我需要演示的实际工作。
- 将addNumbers()方法签名更改为以下内容( 无需重新启动应用程序服务器 ):
- Bean方法:
public Object addNumbers(int num1) {int res = 0;res = num1;if (res == 0) {setResult("Hi there I am an action method to add numbers.");} else {setResult("Final result is: " + res);}return null;}
- 然后您的按钮呼叫到:
<h:commandButton type="submit"value="Submit" action="#{jSFeatBean.addNumbers(1)}"/>
- 按下按钮,输出文本值应为:
Final result is: 1
- Bean方法:
- 再做一次:
- Bean方法:
public Object addNumbers(int num1, int num2) {int res = 0;res = num1 + num2;if (res == 0) {setResult("Hi there I am an action method to add numbers.");} else {setResult("Final result is: " + res);}return null;}
- 然后您的按钮呼叫到:
<h:commandButton type="submit"value="Submit" action="#{jSFeatBean.addNumbers(1,2)}"/>
- 按下按钮,输出文本值应为:
Final result is: 3
- Bean方法:
注意:该参数可能具有不同的参数类型,但预计不会是同一类型,该方法也可能返回用于导航到其他页面的值,在此示例中,该参数返回null表示在同一页面上。
我非常喜欢此功能,非常有用,方便,编码愉快。
资源:
- JavaEE 7教程(7.5导航模型)。
翻译自: https://www.javacodegeeks.com/2014/01/jsf-passing-parameters-to-jsf-action-methods-from-page-directly-a-nice-feature-of-javaee-6.html
JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能相关推荐
- jsf 后台参数到页面_JSF:直接从页面将参数传递给JSF操作方法,这是JavaEE 6+的一个不错的功能...
jsf 后台参数到页面 其中一个JSF 2+不错的特点出现在Java企业版的JavaEE 6 +,是你可以传递参数给喜欢的commandButton和commandLink组件的任何动作元件操作方法. ...
- 如何将命令行参数传递给Node.js程序?
我有一个用Node.js编写的Web服务器,我想使用一个特定的文件夹启动. 我不确定如何在JavaScript中访问参数. 我正在像这样运行节点: $ node server.js folder 这是 ...
- 通过BeanShell获取UUID并将参数传递给Jmeter
有些HTTPS请求报文的报文体中包含由客户端生成的UUID,在用Jmeter做接口自动化测试的时候,因为越过了客户端,直接向服务器端发送报文,所以,需要在Jmeter中通过beanshell获取UUI ...
- java+hadoop配置参数_将Hadoop参数传递给Java代码
我有一个Uber jar执行一些级联ETL任务. jar的执行方式如下: hadoop jar munge-data.jar 我希望在作业启动时将参数传递给jar,例如 hadoop jar mung ...
- php向bat中传递参数,php-将参数传递给PHPUnit
php-将参数传递给PHPUnit 我开始编写PHPUnit测试,并且希望这些测试可以在开发人员的机器以及我们的服务器上运行. 开发人员计算机的设置与服务器不同,甚至彼此不同. 要在这些不同的地方运行 ...
- java变量传递给asp,我应该如何将多个参数传递给ASP.Net Web API GET?
回答(10) 2 years ago 这个记录标记是什么意思?如果这仅用于记录目的,我将使用GET并禁用所有缓存,因为您要记录此资源的每个查询 . 如果记录标记有另一个目的,POST就是要走的路 . ...
- plsql 往视图传参数_我们可以将参数传递给SQL中的视图吗?
20 个答案: 答案 0 :(得分:113) 如前所述,你做不到. 可能的解决方案是实现存储的函数,例如: CREATE FUNCTION v_emp (@pintEno INT) RETURNS T ...
- 将参数传递给Bash函数
我试图搜索如何在Bash函数中传递参数,但是出现的是如何从命令行传递参数. 我想在我的脚本中传递参数. 我试过了: myBackupFunction("..", "... ...
- 如何将参数传递给setTimeout()回调?
我有一些如下的JavaScript代码: function statechangedPostQuestion() {//alert("statechangedPostQuestion&quo ...
最新文章
- Docker初学3:Docker的常用命令
- 关于学习Python的一点学习总结(50->描述符)
- ubuntu 修改或创建交换分区的大小
- win8 远程桌面时提示凭证不工作问题的终极解决办法
- 【深度学习】预训练的卷积模型比Transformer更好?
- 服务的默认端口_Informatica端口管理
- 『数据库』怎样设计一个数据库
- (JAVA)IO流之读写单个字节和复制文本文件
- MVC教程第四篇:传递表单数据
- Day1 - Python基础1
- APIO2010巡逻(树上带权直径)
- Spring cloud--鸿鹄Cloud分布式微服务云系统—Config
- 杭电 1421 搬寝室
- hosts文件位置和修复hosts文件
- 计算机英语听力速记...,2019考研计算机英语听力速记技巧
- SSM+垃圾分类小助手 毕业设计-附源码191356
- 地震应急综合解决方案
- S4 BOM批量修改
- c++: 已经声明过变量,依然报 C2065:未声明的标识符错误 解决办法
- 你对前端开发岗的看法
热门文章
- Navicat Premium 11 12 闪退
- 磁珠 符号_贴片磁珠功能_贴片磁珠应用
- python中debug有什么用途_史上最方便的Python Debug工具
- mybatis_user_guide(4) Mapper XML 文件
- SQL编程---存储过程和存储函数
- 托管 非托管_如何在托管的Kubernetes上备份Neo4J
- php cdi_通过MicroProfile上下文传播增强了CDI上下文和隔板
- java中的深度克隆浅克隆_了解Java中的可克隆接口
- 数据结构压缩_将数据压缩到数据结构中
- intext:企业_企业中的微服务:敌是友?