小编Tha*_*ham的帖子

将图像转换为可搜索的pdf

嗨,我正在寻找一个开源Java API,可以将tiff图像转换为可搜索的pdf(OCR).我有研究但到目前为止没有发现任何东西.

注意 我已经查看了这篇文章,但是这个API没有将图像转换为pdf Java OCR实现.但是,我仍在使用代码.

java pdf ocr tiff

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

如何让JSF使用Apache Commons FileUpload上传文件

我知道如何使用Primefaces或使用Tomahawk进行文件上传,但是,我正在尝试使用Apache Commons FileUpload进行文件上传,到目前为止,我有一些路障.即使我的表单使用multipart/form-data,当我提交表单时,内容类型也会变为application/x-www-form-urlencoded.这是我的代码

<h:body>
    <h:form enctype="multipart/form-data">
        Upload File
        <input type="file" name="file"/>
        <p:commandButton value="Submit" action="#{viewBean.submit}"/>
    </h:form>
</h:body>
Run Code Online (Sandbox Code Playgroud)

这是我的 ViewBean

@ManagedBean
@ViewScoped
public class ViewBean implements Serializable {
    public void submit() {
        String url = "/FileUploadServlet";
        FacesContext context = FacesContext.getCurrentInstance();
        try {
            String contentType = context.getExternalContext().getRequestContentType();
            context.getExternalContext().dispatch(url);
        } catch (Exception e) {
            logger.log(Level.SEVERE, "Exception when calling Servlet", e);
        } finally {
            context.responseComplete();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,当我尝试打印上面的内容类型时,它显示出来了application/x-www-form-urlencoded.如果我把它放到ajax="false"我的p:commandButton,那么该submit()方法甚至没有被调用,但如果我取出enctype="multipart/form-data"(仍然保持ajax="false"),然后 …

jsf file-upload jsf-2 apache-commons-fileupload

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

JPA:在独立 Java 应用程序中持久化后如何获取 Id

这是一个独立的 Java 应用程序,而不是 Web 应用程序。所以当我像这样持久化对象时

public <T> T create(T t) {
    em.getTransaction().begin();
    em.persist(t);
    em.flush();
    em.getTransaction().commit();
    return t;
}
Run Code Online (Sandbox Code Playgroud)

id内部T t对象仍然为空,即使新行正确的数据,ID是数据库中正确创建。通常在我的 web 应用程序中@EJBid在我持久化后立即可用,因为它将实体对象持久化到我的持久化上下文中,我不确定这里是否有我的持久化上下文?

这就是我在 @Entity 类中映射我的 id 的方式

@Id
@Basic(optional = false)
@Column(name = "ID")
private Long id;
Run Code Online (Sandbox Code Playgroud)

我也在数据库中制作了这张表的id AUTO_INCREMENT,就像这样

CREATE TABLE Config
(
    ID int NOT NULL AUTO_INCREMENT,
    PRIMARY KEY (ID)
)
Run Code Online (Sandbox Code Playgroud)

这就是我获取 EntityManager 的方式

EntityManagerFactory emf = Persistence.createEntityManagerFactory("CorePU");
em = emf.createEntityManager();
Run Code Online (Sandbox Code Playgroud)

这是我的内部 persistence.xml

<persistence-unit name="CorePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>    
<class>com.wf.docsys.core.model.Config</class>    
<properties>
  <property …
Run Code Online (Sandbox Code Playgroud)

java persistence jpa eclipselink

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

如何自定义布局h:selectOneRadio

h:selectOneRadio的布局可以是水平的也可以是垂直的,所以有一种方法可以做一些自定义布局.例如,不是显示8个单选按钮,而是将它们显示为2行,每行4个?请在PrimeFaces p:selectOneRadio解决方案旁边提供答案,它使用CSS3导致IE8显示矩形形状的单选按钮.

html css jquery jsf

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

浏览器后退和前进按钮不会使用history.js的statechange事件调用回调方法

我使用(https://github.com/browserstate/history.js)并有一段这样的代码

History.Adapter.bind(window, 'statechange', function() { 
    var State = History.getState();
    alert('Inside History.Adapter.bind: ' + State.data.myData);
});

function manageHistory(url, data, uniqueId){
    var History = window.History;
    if ( !History.enabled ) { return false; }        
    History.replaceState({myData: data}, null, '?stateHistory=' + uniqueId);
}
Run Code Online (Sandbox Code Playgroud)

如果我在调用manageHistory()ajax之后调用,则会History.Adapter.bind正确调用回调方法.但是,如果我单击浏览器然后单击前进按钮导致页面导航从B到A,然后A返回到B,History.Adapter.bind则不会调用内部的回调方法.这种情况发生在chrome和IE9上.任何人都知道如何解决这个问题,我需要先State点击浏览器然后转发,以更新我的DOM.请帮忙

注意:我使用版本1.7.1 jquery.history.js用于html4浏览器IE9

更新(2013年5月3日):更多地谈谈我的要求

对不起,我正忙着处理其他任务,直到现在我才有时间看这个问题.因此oncomplete,在ajax调用中,我将这些信息返回给我,并将其推送到状态.我的要求是:如果我从页面A导航到页面B,然后在页面B,我执行导致DOM操作的ajax请求的数量(让我们调用导致DOM操作的每个ajax请求state).如果我单击后退按钮,我应该返回到页面A,如果我单击前进按钮,我应该转到页面B,其中包含我所处的最后状态.

所以我的想法是,oncomplete在我的ajax请求中,我将用我当前的状态替换历史中的最后一个状态(我的json对象是我从ajax请求收到的html).如果我使用推送状态,请说我在页面B上,然后单击一个按钮,我的页面现在更改为aaa,我pushState aaa.然后如果我点击其他按钮,我的页面现在改为bbb,我pushState bbb.如果我现在单击后退按钮,我仍然会在页面B,我的状态History.Adapter.bind(window, 'statechange', function() {})显示为aaa,如果我再次单击后退按钮,我会转到页面A.我不想要这种行为.我希望如果我在页面B上有状态bbb,然后单击返回,我会转到第A页,如果我单击向前,我会转到页面B的状态 …

javascript jquery browser-history history.js pushstate

5
推荐指数
2
解决办法
6264
查看次数

如何在代码中向视图添加UINavigationController?

view1 = [[View1 alloc] init];   //Create the first view
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:view1];
navigationController1.navigationBar.tintColor =[UIColor blackColor];
Run Code Online (Sandbox Code Playgroud)

View1继承自UIViewController.所以我创建了一个*view1,然后我创建了一个UINavigationController,调用*navigationController1.我如何将两者联系在一起?非常感谢你

iphone uiviewcontroller uiview uinavigationcontroller

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

C++ - 加载所有文件名+计算当前目录中的文件数+过滤器文件扩展名

我想计算当前目录中的文件数以及加载数组中的所有文件名.如果可能,我想知道如何过滤文件扩展名

c++ directory macos filenames file

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

JPA:当我尝试持久化对象时出现奇怪的错误

我得到了和OneToMany之间的关系UserGroup
Group.java

@Entity
public class Group {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)        
private Long id;

private String groupid;

@ManyToOne
@JoinColumn(name="USER_FK")
private User user;
...
}
Run Code Online (Sandbox Code Playgroud)

User.java

@Entity
public class User {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)    
private Long id;

private String userId;

private String password;

private String fname;

private String lname;

@OneToMany(mappedBy="user", cascade=CascadeType.ALL)
private List<Group> groups;

public void addGroup(Group group){
    if(this.groups == null){
        this.groups = new ArrayList<Group>();
    }
    this.groups.add(group);
    group.setUser(this);
}
}
Run Code Online (Sandbox Code Playgroud)

所以当我试图坚持这个对象时

    User user = em.find(User.class, 1L); …
Run Code Online (Sandbox Code Playgroud)

java orm jpa foreign-keys java-ee

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

下载后如何刷新页面

我有一个命令按钮,它将调用一个函数来下载文件(标准内容,例如InputStreamBufferedOutputStream...) 下载成功后,在函数末尾,我更改当前对象的一些值并将其保存到数据库中。所有这些都可以正常工作。现在,当文件下载完成时,页面内容不会更新。我必须点击刷新才能看到更新的内容。请帮忙。以下是我的代码的基本结构

document:托管 Bean
getDrawings():方法返回绘图(实体类)列表
CheckedOutBy:实体的属性Drawing

<p:dataTable id="drawing_table" value="#{document.drawings}" var="item" >                            
    <p:column>
        <f:facet name="header">
              <h:outputText value="CheckedOutBy"/>
        </f:facet>
        <h:outputText value="#{item.checkedOutBy}"/>
        ...
</p:dataTable>
<p:commandButton ajax="false" action="#{document.Download}" value="Download" />
Run Code Online (Sandbox Code Playgroud)

在我的托管 Bean 中

public void Download(){
    Drawing drawing = getCurrentDrawing();
    //Download drawing
    drawing.setCheckedOutBy("Some Text");
    sBean.merge(drawing);  //Update "Some Text" into CheckedOutBy field
}
Run Code Online (Sandbox Code Playgroud)

java jsf refresh primefaces

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

JSF + Primefaces:带有ajax的"渲染"组件的问题

EDIT
Cant似乎可以rendered正常使用update属性.这是我的代码

        <ui:define name="left">
            <h:form>
                <p:commandLink value="Hey"
                actionListener="#{bean.setRenderComment}"
                update="comment"/>
            </h:form>
       </ui:define>
       <ui:define name="right">
            <h:panelGroup id="comment" rendered="#{bean.renderComment}">
                hello
            </h:panelGroup>
       </ui:define>
Run Code Online (Sandbox Code Playgroud)

renderComment是一个布尔属性bean.setRenderComment基本状态切换的renderComment这样

this.renderComment = !this.renderComment;
Run Code Online (Sandbox Code Playgroud)

是的,每次我点击链接时Hey,我都需要刷新以hello开启或关闭渲染.我该如何解决它,以便我不需要刷新

java jsf primefaces

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