`

"h:outputText"也可以这样用,如果是碰到JS语句也可以运行比如alert()

阅读更多
(1)
在我的JSF页面中想表达这样的语句:
<h:outputText id="scripthere" escape="false" value="<b>This is a text</b>" />
但是页面报错误:The value of attribute "value" associated with an element type "h:outputText" must not contain the '<' character.
查了下,这个比较好解决,办法如下:
<b><h:outputText id="scripthere" escape="false" value="This is a text" /></b>
(2)但是我要达到这样的效果就难了。
<h:outputText id="scripthere" escape="false" value="<script>alert('提示信息');</script>" />
我也用了上面的那个办法,但是还是报那个错误。至今还没有找到办法....
找到了办法:
<script>
<h:outputText id="scripthere" value="alert('提示信息')"/>
</script>
这样每行每行写就不会全部飘红了。(注意这里的id,其实在后面已经验证了这里不要id)
其实我最终的目的不是这样写的,
最终目的写法:
<script>
<h:outputText id="scripthere" value="#{publishTemplate.script}"/>;
</script>
这样写也没有达到我要的效果,因为页面重新加载一次就使得我private String script;这个为空(这里为空的原因在后面也说了是因为按钮的原因我这里用的是ajax4jsf的,在后面也改成普通的按钮,以便点击后来刷新整个页面)
public String getScript() {
System.out.println("getscript="+script);
return script;
}
public void setScript(String script) {
System.out.println("setscript="+script);
this.script = script;
}
我在判断没有目录的时候会设置它的值:
else{
System.out.println("must be publish template at first !");
this.setScript("alert('提示信息');");
}
但是当页面重新加载一次我就得不到它的值了。所以可能这种方法行不通啦 !!!
最后实在没办法了,就把那个script属性设置成static,这时候就弹出对话框来了,因为很难看它当页面还没有加载完的时候就弹出对话框把整个屏幕都全笼罩了,所以修改template.xhtml里面的那段代码:
<script>
window.onload = new Function("<h:outputText value="#{publishTemplate.script}"/>");
</script>
这样修改就好看些了。
但是当用已经存在的目录来操作时,因为它是static所以达不到效果,所以最后放弃这种方式。
哈哈,上面的情况总得不到值是因为我的按钮的问题,我原来用的是:
<a:commandButton value="Publish" action="#{publishTemplate.publishOneDirectory()}" rendered="#{templateBean.select}" />
xmlns:a="http://richfaces.org/a4j"
这里是ajax4jsf的按钮,a 是ajax的功能  它提交执行后 不再重绘整个页面  
,重绘整个页面时它会去bean里取的。所有改成h:commandButton了。这样在后台就可以得到值,但是在前台还是没有得到。待解决中...
最终的解决办法找到啦!!!
完整的代码如下:
(1)类:
private String script;
public String getScript() {
return script;
}
public void setScript(String script) {
this.script = script;
}
public void publishOneDirectory(){
if(localFilePath != null && flag == true){
   //这里的代码省略了
}else{
   this.setScript("alert('must be publish template at first !');");
}
}
(2)页面中:这outputText里面的id已经去掉啦,不去掉会报错。
<script>
window.onload = new Function(" <h:outputText value="#{publishTemplate.script}"/> ");
</script>
<h:commandButton value="Publish" action="#{publishTemplate.publishOneDirectory()}" rendered="#{templateBean.select}" />
分享到:
评论

相关推荐

    h outputText 使用css 換行1

    标题“h:outputText 使用css 换行1”描述了一个通过CSS实现文本换行的解决方案,主要针对JSF中的`&lt;h:outputText&gt;`标签。 `&lt;h:outputText&gt;`是JavaServer Faces (JSF)框架中用于显示静态或动态文本的组件。它通常用于...

    人事信息管理系统

    jsf和jpa 期末大作业 ... &lt;h:outputText value="删除"&gt;&lt;/h:outputText&gt; &lt;f:param name="p_id" value="#{person.id}"/&gt; &lt;/h:outputLink&gt; &lt;/h:column&gt; &lt;/h:dataTable&gt; &lt;/h:form&gt; &lt;/f:view&gt;

    jsf常用标签整理

    "&gt;&lt;/h:outputText&gt;如果需要显示后台bean的属性值,可以这样:&lt;h:outputText value="#{backBean.welcomeMessage}"&gt;&lt;/h:outputText&gt;这里的`welcomeMessage`是后台bean的一个属性。 6. 标签&lt;h:messages&gt;用于显示验证...

    JSF H 标签在HTML中的对应元素

    - `h:outputText` 用于显示文本,可以绑定到Bean的属性。 ```html &lt;h:outputText value="#{bean.name}"/&gt; ``` 对应的HTML是: ```html terry ``` - `h:outputLabel` 用于创建标签,与输入组件配合使用,...

    JSF2.0与Ajax交互实现.pdf

    `&lt;h:outputText&gt;`主要用于显示静态文本,因此如果需要更新的内容不仅仅是静态文本,则可能需要使用其他组件如`&lt;h:outputLabel&gt;`或`&lt;h:outputText&gt;`结合其他JSF组件来实现动态内容的更新。 **总结** 通过以上介绍,...

    JSF标签详解(一个不漏).doc

    &lt;h:outputText value="#{bean.outputDate}"&gt; &lt;f:convertDateTime pattern="yyyy 年 MM 月 dd 日"/&gt; &lt;/h:outputText&gt; ``` converter converter标签用于调用指定的JSF Converter实现,对JSF组件的输入输出值进行...

    jsf2.0 dataTable单行修改例子

    对于可编辑的列,可以使用`&lt;h:inputText&gt;`替换`&lt;h:outputText&gt;`。 5. **编辑模式**:为了实现单行编辑,通常需要一个触发编辑状态的机制,如点击行或单元格。这可以通过添加一个`&lt;h:commandLink&gt;`或`&lt;h:...

    jsf常用控件的使用

    在JavaScript Server Faces (JSF) 中,控件是构建用户界面的关键组成部分,它们允许开发者创建交互式的Web应用程序。本文将深入探讨JSF中的一些常见控件及其使用方法,旨在帮助开发者更好地理解和应用这些控件。 1....

    myfaces标签库

    以上代码展示了如何使用MyFaces标签库中的`&lt;h:outputText&gt;`, `&lt;h:inputText&gt;`, `&lt;h:message&gt;`和`&lt;h:commandButton&gt;`等标签创建一个简单的登录表单。`#{bean.userName}`和`#{bean.password}`通过表达式绑定到后端Bean...

    Richfaces标签

    &lt;h:outputText value="This panel is called using Component Control Component"&gt;&lt;/h:outputText&gt; &lt;h:outputText value="Closure link (X) works also through Component Control"&gt;&lt;/h:outputText&gt; &lt;/rich...

    jboss as 7 support jsf2.2.1 modules

    通过使用Express Language 3(Java EE 7的一部分),多个属性也可以通过EL表达式直接定义。 &lt;h:outputText value="Something" &gt; &lt;f:passThroughAttributes value="{"one":1, "two":2, "three":3}" /&gt; &lt;/h:...

    richface标签.doc

    &lt;h:outputText value="This panel is called using Component Control Component"&gt;&lt;/h:outputText&gt; &lt;h:outputText value="Closure link (X) works also through Component Control"&gt;&lt;/h:outputText&gt; ...

    primefaces 中文文档

    &lt;h:outputText value="Content for Tab 2"/&gt; &lt;/p:tab&gt; &lt;/p:tabView&gt; ``` 这个例子展示了如何使用 `&lt;p:tabView&gt;` 创建两个标签页,并为每个标签页添加内容。 #### 五、更多组件介绍 除了上述介绍的一些基础组件...

    重要知识JSF标签.pdf

    3. `&lt;h:outputFormat&gt;`:格式化输出文本,支持参数化,可以与`&lt;f:param&gt;`配合使用。 4. `&lt;h:outputText&gt;`:简单地显示绑定的值。 **输入类标签**: 1. `&lt;h:inputText&gt;`:生成单行文本输入框,`type`属性默认为`...

    jsf 控件说明(很好)

    例如,`&lt;h:outputFormat&gt;`可以结合`&lt;f:param&gt;`使用,将变量插入到文本中。在上述示例中,`&lt;h:outputFormat&gt;`根据`messages.properties`文件中的键生成格式化的文本。 在JSF开发中,理解这些核心概念和组件对于构建...

    在Java EE 6中使用JSF 2.0简化页面制作

    表单中有一个`&lt;h:form&gt;`,一个`&lt;h2&gt;`标签,两个`&lt;h:outputText&gt;`用于显示数据,一个`&lt;h:graphicImage&gt;`用于展示图片,一个`&lt;h:inputText&gt;`用于用户输入,一个`&lt;h:commandButton&gt;`用于提交操作,以及一个`&lt;h:message&gt;...

Global site tag (gtag.js) - Google Analytics