Tag: jsf

<h:selectOneListbox disabled = true导致NullPointerException

我有JSF 1.1页面,其中有一个<h:selectOneListbox 。 当我设置属性disabled = true时, <h:selectOneListbox选定值在提交页面时变为null。 <h:selectOneListbox size="1" id="prod" disabled="#{mybean.disable}" 即使property设置为disabled = true,如何确保选中的值不为null。 谢谢

JSF:ManagedBean,处理业务逻辑的好地方?

我有managedBean for fileUpload ,一旦上传文件然后我需要根据从解析器下拉列表中选择的值调用不同的解析器,然后在解析器中创建getDetails对象,我在那里调用该特定类的getDetails方法,这里需要注意的事项既不是parserClass也不是parserClass都在faces-config.xml中注册,我的问题是 如果我想维护从FileUpload类到Parser类到DetailsClass会话信息,那么我应该在faces-config.xml定义它,但是如果定义了parser类和managedBean ,它应该被定义为managedBean还是其他类似的东西? 这是代码: 在我的managedBean类中,我有两个函数, fileUpload和callParser ,如下所示: public void uploadFile(FileEntryEvent event) { FacesContext ctx = FacesContext.getCurrentInstance(); //Setting getSession to false, container will not create new session if session is not present and return null HttpSession session = (HttpSession) ctx.getExternalContext().getSession(false); setSession(session); resultBean = new ResultBean(); FileEntry fileEntry = (FileEntry) event.getSource(); FileEntryResults results = […]

在Spring中更新属性文件中的数据库设置

我是Spring的新手我正在尝试创建一个数据库管理器页面,该页面显示页面加载时的数据库详细信息,并在用户按下提交时更新数据库设置 我按照本教程并在属性文件中设置了数据库设置。 我设法以编程方式更新属性文件中的数据库设置。 当我使用以下代码检索数据库设置时 DriverManagerDataSource databaseSource = (DriverManagerDataSource)context.getBean(“dataSource”); databaseSource.getUsername(); 我设法获得旧值并且无法获得新值 这是applicationContext.xml文件中的映射 classpath:/bundle/database.properties 我检查了属性文件,发现它是用最新的输入更新的。 我错过了什么? 提前致谢 PS我在Spring 3中使用JSF1.2 更新 只是让我的要求变得简单。 我正在创建一个setparate dbsettings页面,这样当用户希望连接到不同的数据库时,他/她可以在dbsettings页面中输入详细信息并连接 更新 我使用此代码来检索应用程序上下文 private ApplicationContext context; …. ServletContext servletContext = FacesUtil.getServletContext(); this.context = WebApplicationContextUtils .getRequiredWebApplicationContext(servletContext); 如果我将其更改为AbstractApplicationContext,我需要在上面的代码中进行哪些更改? UPDATE this.context = (AbstractApplicationContext)WebApplicationContextUtils .getRequiredWebApplicationContext(servletContext); String valueForTheProperty = “”; context.refresh(); 当我添加上面的行时,我得到了 org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; […]

弄清楚为什么在我不希望调用它们时调用JSF getter

我正在使用jsf 2 ,我得到了一些我很难解释或理解的行为。 我有几个独立的h:form s。 其中一个看起来像这样: Ignore Errors 我的问题是,无论何时按下前面提到的按钮,我都会看到其他不相关的bean成员getter(也是其他forms的部分)被调用。 (通过记录) 任何getter都没有业务逻辑,但我想了解其原因。 通过打印stacktrace我确保JSF确实是调用它们的人。 您如何建议我关注JSF以了解他们被调用的原因? 可能是什么原因? 谢谢! 本。 UPDATE 这是由一个正在运行且不应该运行的getter打印的堆栈跟踪。 正如评论中所讨论的那样,在这个问题中包含所有相关的细节是非常复杂的,所以我宁愿得到帮助我自己找到答案的工具。 java.lang.Exception at com.aCompanyName.applicationName.beans.aBean.getSomethingFromBean(CurrentDevice.java:382) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javax.el.BeanELResolver.getValue(BeanELResolver.java:302) at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:175) at org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:142) at com.sun.el.parser.AstValue.getValue(AstValue.java:116) at com.sun.el.parser.AstValue.getValue(AstValue.java:163) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219) at org.apache.myfaces.view.facelets.el.TagValueExpression.getValue(TagValueExpression.java:85) at org.apache.myfaces.view.facelets.component.UIRepeat.getValue(UIRepeat.java:248) at org.apache.myfaces.view.facelets.component.UIRepeat.getDataModel(UIRepeat.java:211) at org.apache.myfaces.view.facelets.component.UIRepeat._validateAttributes(UIRepeat.java:530) at org.apache.myfaces.view.facelets.component.UIRepeat.visitTree(UIRepeat.java:763) at javax.faces.component.UIComponent.visitTree(UIComponent.java:797) […]

每个用户JSF一个会话

我刚开始学习JSF,我想知道这个问题。 我有16个复选框。 当我打开页面并且我的兄弟也打开它时,似乎我们有相同的会话。 当我点击其中一个复选框时,我的兄弟浏览器也会检查它。 选中的复选框保存在private ArrayList selectedBoes = new ArrayList(); 我的ManagedBean是SessionScoped。 为什么会发生这种情况以及如何避免它?

转换器类抛出exceptionjava.lang.IllegalArgumentException

我在我的JSF页面中有p:selectOneMenu,当我运行我的JSF页面时,我从Converter类得到以下exception。 java.lang.IllegalArgumentException: object 5634 is of type java.lang.String; expected type: test.entity.Employee 我该如何解决这个问题? 我在Entity类中有以下内容 @Entity public class Employee implements Serializable { private String employeeNumber; private String employeeName; /* getters and setters */ EmployeeConverter类 @Component(“employeeConverter”) @FacesConverter(forClass = Employee.class) @Inject EmployeeService employeeService; @Override public Object getAsObject(FacesContext facesContext, UIComponent component, String value) { if (value == null || value.length() […]

单击列本身中的HtmlCommandButton删除HtmlColumn

我在支持bean中生成了一个HtmlCommandButton 。 通过单击该按钮,我想从HtmlDataTable删除一个HtmlColumn ,它也是在烘焙bean中生成的。 JSF dynamic    MyTest.java package com.test; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.el.MethodExpression; import javax.el.ValueExpression; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.component.UIComponent; import javax.faces.component.UISelectItems; import javax.faces.component.html.HtmlColumn; import javax.faces.component.html.HtmlCommandButton; import javax.faces.component.html.HtmlDataTable; import javax.faces.component.html.HtmlInputText; import javax.faces.component.html.HtmlOutputText; import javax.faces.component.html.HtmlSelectOneMenu; import javax.faces.context.FacesContext; import javax.faces.model.SelectItem; @ManagedBean(name = “MyTest”) @ViewScoped public class MyTest { public MyTest() { […]

p:commandButton action和f:setpropertyactionlistener未在p:columngroup中调用

我需要将子组件放在primefaces子表格页脚中(p:columngroup type =“footer”),但标准子表格渲染器不提供这样的机会。 所以我已经覆盖了org.primefaces.component.SubTableRenderer来添加子渲染: public class CustomSubTableRenderer extends SubTableRenderer{ @Override protected void encodeColumnFooter(FacesContext context, SubTable table, Column column) throws IOException { ResponseWriter writer = context.getResponseWriter(); String style = column.getStyle(); String styleClass = column.getStyleClass(); styleClass = styleClass == null ? DataTable.COLUMN_FOOTER_CLASS : DataTable.COLUMN_FOOTER_CLASS + ” ” + styleClass; writer.startElement(“td”, null); writer.writeAttribute(“class”, styleClass, null); if(column.getRowspan() != 1) […]

JSF – Spring Security Integration问题

Servlet 2.4+ API允许我们使用标记内的标记,使用FORWARD值来拦截内部转发到其他资源的请求。 对于一个servlet转发到另一个servlet,spring安全约束工作正常。 springSecurityFilterChain /* FORWARD REQUEST 问题:安全filter似乎没有使用JSF操作拦截内部转发 在使用JSF操作(导航案例)时,JSF似乎将请求“转发”到目标视图(页面)。 这会导致URL落后于页面的实际URL一步。 这样做的副作用是弹簧安全约束(与URL绑定)在下一个操作之前不会生效。 示例:当前页面URL: http://host/myapp/page1.xhtml (page1.xhtml有一个导航到受保护的page2的操作) 在提交时,请求将提交给呈现page2.xhtml的服务器,但URL仍保留为http://host/myapp/page1.xhtml 。 Spring Security不拦截和保护page2.xhtml 这可以通过指定以下内容来克服: page2 /page2.xhtml 重定向不是我们想要实现这一目标的方式。 有没有更好的方法让Spring Security与JSF一起使用? 编辑:(spring配置xml的相关片段)

bean中的JSF CSV下载

我试图以与此处相同的方式进行csv下载: 如何从JSF支持bean提供文件下载? 我的响应一直在output.write()行抛出nullPointerException 。 bean是请求范围。 关于空指针的任何想法? try { //submitForm(); FacesContext fc = FacesContext.getCurrentInstance(); HttpServletResponse response = (HttpServletResponse) fc.getExternalContext().getResponse(); response.reset(); response.setContentType(“text/csv”); //response.setContentLength(contentLength); response.setHeader ( “Content-disposition”, “attachment; filename=\”Reporting-” + new Date().getTime() + “.csv\”” ); OutputStream output = response.getOutputStream(); String s = “\”Project #\”,\”Project Name\”,\”Product Feature(s)\”,”; s+=”\”Project Status\”,”; s+=”\”Install Type\”,”; s+=”\”Beta Test\”,\”Beta Test New/Updated\”,”; s+=”\”Production\”,\”Production New/Updated\”,”; s+=”\n”; InputStream […]