gpt4 book ai didi

java - ExtJS4、Spring JPA、Restful 服务、Hibernate 应用程序

转载 作者:行者123 更新时间:2023-12-01 10:11:09 26 4
gpt4 key购买 nike

我正在使用 ExtJS4、Spring JPA、Restful 服务、Hibernate 技术开发一个图书存储库应用程序。我需要在 Extjs 中创建一个网格面板,在加载页面时列出所有书籍,并且网格下方应该有一个能够添加书籍的表单。一旦用户点击表单上的“添加”按钮,网格就会自动刷新并显示新书。

从头开始构建一切对我来说有点挑战性。我已经构建了服务器端代码并​​获取了 listBooks 和 saveBook 方法的响应。现在我需要构建 ExtJS 页面,该页面调用 Spring 中定义的服务来显示图书列表并添加一本书。我正在努力将 ExtJS 与服务器端集成。我无法通过 extjs 调用服务。我将衷心感谢您的帮助!我附上一些屏幕截图。我还为各自的 Impl 类创建了 Dao 和 Service 类。

Ext.onReady(function(){

Ext.create(Ext.window.Window, {
title : 'Add Book',
width : 350,
x : 50,
y : 275,
layout : 'fit',
resizable: false,
closeAction: 'hide',
modal : true,
config : {
recordIndex : 0,
action : ''
},
items : [{
xtype : 'form',
layout: 'anchor',
bodyStyle: {
background: 'none',
padding: '10px',
border: '0'
},
defaults: {
xtype : 'textfield',
anchor: '100%'
},
items : [{
name : 'isbn',
fieldLabel: 'ISBN'
},{
name: 'title',
fieldLabel: 'Title'
},{
name: 'author',
fieldLabel: 'Author'
},{
name: 'genre',
fieldLabel: 'Genre'
},{
name: 'details',
fieldLabel: 'Details'
}]
}],
buttons: [{
text: 'Add Book',
action: 'add'
/* handler : function(){
click : this.doAddBook(),

doAddBook: function(){

Ext.window.MessageBox("Hello");

}

}*/

}]
}).show();
renderTo: Ext.getBody();
});


Ext.define('BookModel', {
extend : 'Ext.data.Model',
fields : [
{name: 'isbn', type : 'int'},
{name: 'title', type : 'string'},
{name: 'author', type : 'string'},
{name: 'genre', type : 'string'},
{name: 'details', type : 'string'}
]
});



Ext.define('Bookstore', {

extend : 'Ext.data.Store',
storeId : 'bookStore',
model : 'BookModel',
fields : ['isbn', 'title', 'author','genre', 'details'],
proxy : {
type : 'ajax',
url : 'http://localhost:2016/SpringRestServiceNew/book/list',
reader : {
type : 'json',
root : 'books'
}
},
autoLoad : true

});


Ext.define('BooksList', {
extend : 'Ext.grid.Panel',
title: 'Books List',
store : 'Bookstore',
columns : [
{header : 'ISBN', dataIndex: 'isbn', flex: 1},
{header: 'Title', dataIndex: 'title'},
{header: 'Author', dataIndex: 'author'},
{header: 'Genre', dataIndex: 'genre'},
{header: 'Details', dataIndex: 'details'}],

height : 250,
width : 400,
renderTo : Ext.getBody()
});
<!-- 
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Library Application</title>
<link rel="stylesheet"
href="http://cdn.sencha.io/try/extjs/4.1.0/resources/css/ext-all-gray.css" />
<script src="http://cdn.sencha.io/try/extjs/4.1.0/ext-all-debug.js"></script>
<script type="text/javascript" src="mycode.js"></script>
</head>
<body>
</body>
</html>
-->

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Library Application</title>
<link rel="stylesheet" type="text/css" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css">
<script type="text/javascript" src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all-debug.js"></script>
<!--<script type="text/javascript" src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all.js"></script> -->
<script type="text/javascript" src="mycode.js"></script>
</head>
<body>
</body>
</html>
[BookController[BookDaoImpl[BookServiceImpl[休息- web.xml[ProjectStructure]] 1 servlet.xml

最佳答案

您的代码存在一些问题。

  1. 由于您想要在列表之后添加一个表单,因此您应该创建面板而不是窗口。
  2. 您正在将表单窗口渲染到正文,而不是列表

这是更新的代码。

Ext.define('BookPanel', {
extend: 'Ext.Panel',
xtype: 'bookForm',
title: 'Add Book',
resizable: false,
config: {
recordIndex: 0,
action: ''
},
items: [{
xtype: 'form',
layout: 'anchor',
bodyStyle: {
background: 'none',
padding: '10px',
border: '0'
},
defaults: {
xtype: 'textfield',
anchor: '100%'
},
items: [{
name: 'isbn',
fieldLabel: 'ISBN'
}, {
name: 'title',
fieldLabel: 'Title'
}, {
name: 'author',
fieldLabel: 'Author'
}, {
name: 'genre',
fieldLabel: 'Genre'
}, {
name: 'details',
fieldLabel: 'Details'
}]
}],
buttons: [{
text: 'Add Book',
action: 'add'
/* handler : function(){
click : this.doAddBook(),

doAddBook: function(){

Ext.window.MessageBox("Hello");

}

}*/
}]
});

Ext.define('BookModel', {
extend: 'Ext.data.Model',
fields: [{
name: 'isbn',
type: 'int'
}, {
name: 'title',
type: 'string'
}, {
name: 'author',
type: 'string'
}, {
name: 'genre',
type: 'string'
}, {
name: 'details',
type: 'string'
}]
});

var data = {
books: [{
isbn: 1,
title: 'Ed Spencer',
author: '555 1234'
}, {
isbn: 2,
title: 'Abe Elias',
author: '666 1234'
}]
};

Ext.define('BookStore', {

extend: 'Ext.data.Store',
storeId: 'bookStore',
model: 'BookModel',
data: data,
proxy: {
type: 'memory',
reader: {
type: 'json',
root: 'books'
}
}

});


Ext.define('BookList', {
extend: 'Ext.grid.Panel',
xtype: 'bookList',
title: 'Books List',
store: new BookStore(),
columns: [{
header: 'ISBN',
dataIndex: 'isbn',
flex: 1
}, {
header: 'Title',
dataIndex: 'title'
}, {
header: 'Author',
dataIndex: 'author'
}, {
header: 'Genre',
dataIndex: 'genre'
}, {
header: 'Details',
dataIndex: 'details'
}],

height: 250,
width: 400
});

Ext.application({
name: 'Fiddle',

launch: function() {
Ext.create('Ext.Panel', {
layout: 'vbox',
items: [{
xtype: 'bookList',
width: '100%',
flex: 1
}, {
xtype: 'bookForm',
width: 500,
flex: 1
}],
renderTo: Ext.getBody()
});
}
});
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="utf-8" />
<title>Library Application</title>
<link rel="stylesheet" type="text/css" href="http://cdn.sencha.com/ext/gpl/4.2.0/resources/css/ext-all.css">
<script type="text/javascript" src="http://cdn.sencha.com/ext/gpl/4.2.0/ext-all-debug.js"></script>
</head>

<body>
</body>

</html>

关于java - ExtJS4、Spring JPA、Restful 服务、Hibernate 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36106573/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com