我正在使用JSF-primeface和javascript.
这是javascript的代码.
<script>
var $element = $("select['se:type5'] option:selected").val();
alert($element);
var input = document.getElementById('se:search');
var combo = document.getElementById('se:type1');
if($element == 1)
{
input.disabled = false;
combo.disabled = true;
}
else if($element == 2)
{
input.disabled = true;
combo.disabled = false;
}
</script>
Run Code Online (Sandbox Code Playgroud)
我可以使用上面的代码禁用输入框,但是onemenu不受影响.
这是我的JSF代码
<p:selectOneMenu id="type5" effect="fold" onchange="disabled();"
required="true"
label="Type5" styleClass="select-option" style="border:1px solid #b5b5b5; padding-left:5px; margin-top:5px;width:298px;height:25px;" >
<f:selectItem itemLabel="Search By Skill" itemValue="1" />
<f:selectItem itemLabel="Search By Location" itemValue="2" />
</p:selectOneMenu>
<p:inputText value="#{user.latitude}" id="latitude" style="visibility: hidden" />
<h:panelGrid columns="4">
<p:inputText id="search" styleClass="inner-page-input-type" …Run Code Online (Sandbox Code Playgroud) 我遇到以下情况:
场景:
在搜索时,支持bean会抛出异常,因为有很多null值.原因是,当他们按下"搜索"时,页面处于RESTORE_VIEW同步状态.
我尝试在页面上禁用缓存,强制用户刷新后退按钮上的页面,但是很多用户抱怨"为什么我不能使用后退按钮,我之前可以做到!" 由于他们认为应用程序在"确认表单重新提交"页面chrome/IE/Firefox show中崩溃,导致帮助台门票,因此管理人员希望我寻找替代方案.
我的问题:
可以检测RESTORE_VIEW的当前Phase_ID,而不是在此阶段进行任何处理以避免异常,但仅此一点,只需重新调整即可为用户提供部分页面视图.是否可以RENDER_RESPONSE在此方案中放入页面然后进行处理?这应该刷新页面.
由于推荐(或普通/良好)实用是禁用动态页面上的缓存,我已经这样做了,并且必须重新教育顽固的用户.
但是我有以下问题.
当按下具有禁用缓存的页面上的"返回"按钮时,浏览器会显示"确认表单重新提交"(chrome),用户可以按Refresh / F5或Enter键.
如果Refresh/ F5是动作,一切都可以,我检测到RESTORE_VIEW相位并避免在该阶段中进行任何处理并让处理在RENDER_RESPONSE阶段完成.但是,如果Enter按下,则PhaseID处于,RENDER_RESPONSE(6)但是几个下拉控件的值为null,这会导致页面失败.所以我进行检查以检测这些情况并显示FaceMessage以告诉用户刷新页面.
问题是,我可以强制页面刷新而不是强制用户这样做吗?此页面的导航案例格式为:
<navigation-rule>
<navigation-case>
<from-outcome>/app/ord/r1</from-outcome>
<to-view-id>/jsp/ordersHistory.jsp</to-view-id>
</navigation-case>
</navigation-rule>
Run Code Online (Sandbox Code Playgroud)
我已经看到在线代码片段faces-redirect=true用于强制重新加载页面,但我无法让它工作!有什么建议?
我是JSF的新手,我需要一些帮助,我认为这将是一项非常简单的任务.我想从数组或循环或其他东西填充一个selectonemenu.我有一个表单,我希望用户输入他们的DOB.我想要的只是一个简单的列表,他们可以从1..31中选择一个月中的某一天.我不想要31岁
<f:selectItem value="n" />
Run Code Online (Sandbox Code Playgroud)
标签.我试图在我的支持bean中放入一个"getDates"方法,但是效果不好.任何有关如何做到这一点的建议将不胜感激.
我正在做一个简单的注销,并希望确保我正确引用登录根.
<h:form>
<h:commandLink value="Logout" action="#{request.contextPath}/#{userController.logout()}" />
</h:form>
Run Code Online (Sandbox Code Playgroud)
但我得到这个错误:
/topnav.xhtml @16,104 action="#{request.contextPath}/#{userController.logout()}" Not a Valid Method Expression: #{request.contextPath}/#{userController.logout()}
Run Code Online (Sandbox Code Playgroud)
UPDATE
现在我正在从登出链接添加导航规则到登录页面,因为登出链接在所有页面上,我需要添加规则以允许转换回登录页面.这似乎是一个简单的项目的很多配置.我希望只是让被调用的方法指示登录页面是最终目的地并且热门必须将导航条目从所有页面放入登录页面.
我试图在jsf 2.0中使用带有hashmap或table的c foreach但是它没有工作所以我写了一个这样的简单代码仍然这个不工作....请帮助我失踪的地方...
<body>
<f:view>
<c:forEach var="i" begin="1" end="20" step="1" varStatus ="status">
<c:out value="#{i}" />
</c:forEach>
</f:view>
Run Code Online (Sandbox Code Playgroud)
和输出为此我得到这样的..
#{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i} #{i}
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个访问数据库的简单登录页面,以便在验证用户名和密码时,在类中设置id,firstName,lastName以进行访问.我收到此错误:
javax.servlet.ServletException: Unable to create managed bean UserBean. The following problems were found:
- Property firstName for managed bean UserBean does not exist. Check that appropriate getter and/or setter methods exist.
- Property id for managed bean UserBean does not exist. Check that appropriate getter and/or setter methods exist.
- Property lastName for managed bean UserBean does not exist. Check that appropriate getter and/or setter methods exist.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:321)
Run Code Online (Sandbox Code Playgroud)
我有id,firstName,lastName但没有setter的getter,因为它们是在验证后设置的.
这是类UserBean
public class UserBean {
private static String password, username, id, …Run Code Online (Sandbox Code Playgroud) 我正在导入Excel文档以便在UI中阅读和显示内容.我需要知道如何使用浏览获取上传文件的路径,以便读取excel文件的内容.
我尝试使用prime faces库设置JSF项目当我运行此设置时,它显示跟随错误
org.apache.jasper.JasperException: javax.servlet.ServletException: null source
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:54
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
Run Code Online (Sandbox Code Playgroud)
我无法找到背后的原因.
以下是设置
Folloing是我在web-inf/lib中包含的库
1. jsf-api-2.0.3.jar
2. jsf-impl-2.0.3.jar
3. jstl-1.0.2.jar
4. primefaces-3.4.jar
以下是web.xml文件的委托
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.DEFAULT_SUFFIX</param-name>
<param-value>.xhtml</param-value>
</context-param>
<context-param>
<param-name>primefaces.skin</param-name>
<param-value>none</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<listener>
<listener-class>
com.nsf.ecap.web.base.ECapStartUpServlet
</listener-class>
</listener>
</web-app>
Run Code Online (Sandbox Code Playgroud)
login.xhtml
<h:body>
<CENTER>
<h:panel header="Login Form">
<h:Form>
<h:PanelGrid columns="2" cellpadding="2">
<h:outputLabel value="UserName" for="#{loginBBean.userInfo.username}"> </h:outputLabel>
<h:inputText value="#{loginBBean.userInfo.username}" …Run Code Online (Sandbox Code Playgroud) 因此,我试图将对象值从Bean传递到primefaces数据表中(当前使用primefaces 3.4),但是与此同时我面临两个问题。
1.我似乎找不到任何方法来显示(或表示)数据表中的列中的布尔值。每当我尝试执行此操作时,表将返回完全为空(即使没有布尔列,其他列也将填充来自bean的数据)。
2.另一个更大的问题(我认为与Java有关,而不是与primefaces有关)是我目前从Siebels CRM ONDemand云解决方案中获得了26个不同的对象,每个对象都包含自己的数据类型和属性值。我无法终生确定如何基于特定对象显示的下拉选择来动态显示质数表中的对象字段。到目前为止,我已经设法将这些对象之一的某些字段显示为一种原型,但是我仍然无法显示布尔值,这也是一个噩梦。
任何人都有类似的经历吗?或建议?我已经对此感到困惑了两个多星期了,我快要疯了!
如果需要,我可以提供代码示例或其他详细信息:)
非常感谢,我非常感谢您的帮助!
雷吉
HTML代码:
<p:panel header ="Source Environment" style="margin-bottom:5px;">
<p:dataTable draggableColumns="true" id="tableFieldSet1" value="#{ODComBean.fields}" var="tableFieldSet1" rowKey="#{ODComBean.fields}" selectionMode ="multiple" style="font-family:sans-serif; width:max-content;">
<p:panel header="OD Object Selection" style="margin-bottom:5px;">
<h:panelGrid columns="2" cellpadding="5">
<p:selectOneMenu immediate ="true" id="pickList" value="#{ODComBean.fieldSetData}" effect="fade" style="font-size: 12px; font-family:sans-serif;" >
<f:selectItems value="#{ODComBean.fieldSet}" itemLabel="#{fieldSet.objectName}" var="fieldSet"/>
<p:ajax event="change" update="@form" />
</p:selectOneMenu>
</h:panelGrid>
</p:panel>
<p:panel header ="Source Environment" style="margin-bottom:5px;">
<p:dataTable draggableColumns="true" id="tableFieldSet1" value="#{ODComBean.fields}" var="tableFieldSet1" rowKey="#{ODComBean.fields}" selectionMode ="multiple" style="font-family:sans-serif; width:max-content;">
<p:column headerText="Type" styleClass="singleLine" style="height: 10px; font-size: 8pt;">
<h:outputText …Run Code Online (Sandbox Code Playgroud) <h:form id="form">
<p:messages />
<p:panel header="Análise">
<h:outputText value="Mês da análise: " />
<p:selectOneMenu value="#{report005.selectedMes}">
<f:selectItems var="data" value="#{report005.analiseMeses}" itemLabel="#{report005.formataDataCombo(data)}" />
<f:convertDateTime pattern="MM/yyyy" />
</p:selectOneMenu>
<p:commandButton value="Análises" update="analiseTable" actionListener="#{report005.loadAnalise()}" />
<p:dataTable id="analiseTable" var="pes" value="#{report005.analiseModel}" selection="#{report005.selectedAnalise}" emptyMessage="Não há registros...">
<p:column selectionMode="multiple" style="width:18px" />
<p:ajax event="rowSelectCheckbox" listener="#{report005.loadAnaliseProduto()}" update="produtosmanycheck" />
<p:column headerText="Código">
#{pes.cod_analise}
</p:column>
<p:column headerText="Nome">
#{pes.dsc_analise}
</p:column>
<p:column headerText="Descrição">
#{pes.dsc_resumida_acao}
</p:column>
<p:column headerText="Planejamento">
<h:outputText value="#{pes.dat_planejamento_analise}">
<f:convertDateTime pattern="dd/MM/yyyy" />
</h:outputText>
</p:column>
</p:dataTable>
</p:panel>
<p:panel header="Produto Gerencial">
<p:selectManyCheckbox id="produtosmanycheck" value="#{report005.selectedProduto}" layout="pageDirection">
<f:selectItems id="teste" value="#{report005.produtos}" />
</p:selectManyCheckbox> …Run Code Online (Sandbox Code Playgroud) jsf ×10
primefaces ×3
java ×2
jsf-2 ×2
boolean ×1
datatable ×1
el ×1
file-upload ×1
javabeans ×1
javascript ×1
jstl ×1
properties ×1
richfaces ×1