小编Tuu*_*nen的帖子

如何在Java中有效地管理文件系统上的文件?

我正在创建一些JAX-WS端点,为此我想保存收到和发送的消息以供以后检查.为此,我计划将消息(XML文件)保存到文件系统中,在一些合理的层次结构中.每天将有数百甚至数千个文件.我还需要存储每个文件的元数据.

我正在考虑将元数据(只是几个字段)放入数据库表中,但XML文件将自身内容放入文件系统中的文件中,以免使内容数据(很少读取)膨胀数据库.

是否有一些简单的库可以帮助我保存,加载,删除等文件?自己实现它并不是那么棘手,但我想知道是否有现有的解决方案?只是一个简单的库,已经提供了对文件系统的轻松访问(最好是通过不同的操作系统).

或者我是否需要它,我应该使用原始/自定义Java?

java filesystems web-services file save

3
推荐指数
1
解决办法
3126
查看次数

为什么h:dataTable里面没有ui:重复获取正确的ID?

码:

<ui:repeat var="obj" value="#{demo2Bean.someList}">
    <h:panelGroup id="foo" />
    <h:dataTable id="bar" />
</ui:repeat>
Run Code Online (Sandbox Code Playgroud)

结果:

<span id="j_idt55:0:foo"></span>
<table id="j_idt55:0:bar"><tbody><tr><td></td></tr></tbody></table>
<span id="j_idt55:1:foo"></span>
<table id="j_idt55:0:bar"><tbody><tr><td></td></tr></tbody></table>
Run Code Online (Sandbox Code Playgroud)

如您所见,datatables的id与'j_idt55:0:bar'相同,但对于panelGroups,它增长(应该如此):'j_idt55:0:foo','j_idt55:1:foo'.为什么会这样?

java jsf jsf-2

3
推荐指数
1
解决办法
1059
查看次数

JSF 2.0:以编程方式添加UIComponent时@ResourceDependency不起作用

@ResourceDependency(library = "component/myComponent", name = "myComponent1.css")
public class MyComponent1 extends UIComponentBase {

    public void encodeBegin(FacesContext context) throws IOException {
        MyComponent2 comp2 = new MyComponent2();
        getChildren().add(comp2);
    }

}

@ResourceDependency(library = "component/myComponent", name = "myComponent2.css")
public class MyComponent2 extends UIComponentBase {

    // ...

}
Run Code Online (Sandbox Code Playgroud)

myComponent1.css被包含在页面中,myComponent2.css没有.

特征?错误?配置问题?

它有程序化的方式来添加资源可能解决这个问题吗?

运行Mojarra 2.0.2

java jsf jsf-2

2
推荐指数
1
解决办法
2615
查看次数

防止应用程序某些部分的组件树序列化

是否可以明确拒绝 JSF 序列化某些组件树?目前我正在将一个不可序列化的对象传递给<h:inputText>

<h:inputText value="#{nonSerializableBean.nonSerializableClassInstance}" />
Run Code Online (Sandbox Code Playgroud)

单击几次后会发生什么(在视图恢复期间):

javax.faces.FacesException: Unexpected error restoring state for component
with id configurationForm:j_idt292:j_idt302:field.  Cause:
java.lang.IllegalStateException: java.lang.InstantiationException:
my.namespace.NonSerializableClass
Run Code Online (Sandbox Code Playgroud)

我认为发生这种情况是因为 JSF 无法恢复nonSerializableClassInstance

Caused by: java.lang.IllegalStateException: java.lang.InstantiationException: com.foobar.utils.text.Period
at javax.faces.component.StateHolderSaver.restore(StateHolderSaver.java:110)
at javax.faces.component.ComponentStateHelper.restoreState(ComponentStateHelper.java:292)
at javax.faces.component.UIComponentBase.restoreState(UIComponentBase.java:1444)
at javax.faces.component.UIOutput.restoreState(UIOutput.java:255)
at javax.faces.component.UIInput.restoreState(UIInput.java:1359)
Run Code Online (Sandbox Code Playgroud)

一个额外的问题:不让支持 bean 可序列化可以吗?那么这是否应该阻止这些序列化/反序列化?

一些背景:

我们有很多 3rd 方类,需要在 JSF 中提供表单。问题是我们不能直接在 JSF 页面上使用这些类,因为它们没有实现 Serialized 接口,因此如果 JSF 运行时决定序列化/反序列化页面和组件树,它们将会/应该失败。这些类是“封闭的”,我们不允许修改它们。

运行 Mojarra 2.0.2。

jsf serialization jsf-2

1
推荐指数
1
解决办法
5598
查看次数

标签 统计

java ×3

jsf ×3

jsf-2 ×3

file ×1

filesystems ×1

save ×1

serialization ×1

web-services ×1