Javascript 从核心框架过渡
祝大家新年快乐 我是一个依赖于ApacheWicket的项目的新手,这个项目目前并不以拥有庞大的用户群而闻名。事实上,这使得我们很难找到新的人,我们希望最终过渡到一个更新的框架。不幸的是,代码库太大,无法“简单地”重写整个该死的东西 我想问的是: 有没有人有一个可行的策略来从Wicket这样的框架过渡到更“现代”的REST接口+JS Webframework方法?我认为应该可以使用Wicket必须为自己的前端公开的现有API,无论我们以后选择什么js框架来创建整个前端Javascript 从核心框架过渡,javascript,rest,architecture,frameworks,wicket,Javascript,Rest,Architecture,Frameworks,Wicket,祝大家新年快乐 我是一个依赖于ApacheWicket的项目的新手,这个项目目前并不以拥有庞大的用户群而闻名。事实上,这使得我们很难找到新的人,我们希望最终过渡到一个更新的框架。不幸的是,代码库太大,无法“简单地”重写整个该死的东西 我想问的是: 有没有人有一个可行的策略来从Wicket这样的框架过渡到更“现代”的REST接口+JS Webframework方法?我认为应该可以使用Wicket必须为自己的前端公开的现有API,无论我们以后选择什么js框架来创建整个前端 有什么想法吗?我已经将一些
有什么想法吗?我已经将一些纯Javascript组件与Wicket集成在一起-您需要解决的主要问题是如何让它们对话-在Wicket中,您可以使用安装在应用程序中的RestResource来服务JSON内容 例如:
class LayoutToolRestResource() : AbstractRestResource<JacksonWebSerializer>(JacksonWebSerializer()) {
@SpringBean
internal lateinit var layoutObjectTreeSupplier: LayoutObjectTreeSupplier
/**
* Reads the tree nodes from the given data source.
* Example: http://localhost:8080/layout-api/tree-nodes?dataSourceName=admuser1625
*/
@MethodMapping("/tree-nodes")
fun objectTreeNodes(@RequestParam(value = "dataSourceName") dataSourceName: String?): List<TreeNode> {
requireNotNull(dataSourceName) { "You must select a source data-source" }
return layoutObjectTreeSupplier.buildTreeNodeList(dataSourceName)
}
}
在Javascript应用程序中,您引用资源以获取所需的JSON数据:
function getData(dataSourceName) {
var contextPathField = document.getElementsByName('contextPath')[0];
var url = contextPathField.textContent + "/layout-api/tree-nodes?dataSourceName=" + dataSourceName;
wijmo.httpRequest(url, {
success: function (xhr) {
var data = JSON.parse(xhr.responseText);
wijmoTree.itemsSource = data;
},
error: function (xhr) {
// do something here
var errorData = JSON.parse(xhr.responseText);
alert(errorData.errorMessage);
}
}
);
}
通过这种方式,您可以将使用JSON数据的应用程序(大多数web框架都这样做)与Wicket集成。您可以有使用这种方法的页面和使用“经典”方法的页面,或者在页面中使用更现代的组件来检索这样的数据
希望这能有所帮助。我们也有同样的问题,目前还没有明确的策略。我知道有了WicketREST资源(来自wicketstuff),我们可以使用合并纯Javascript组件,但我们在迁移应用程序之前还没有明确的地图。我同意,Wicket现在看起来已经死了。这也不是Wicket的错——只是JS框架比它优越。,
function getData(dataSourceName) {
var contextPathField = document.getElementsByName('contextPath')[0];
var url = contextPathField.textContent + "/layout-api/tree-nodes?dataSourceName=" + dataSourceName;
wijmo.httpRequest(url, {
success: function (xhr) {
var data = JSON.parse(xhr.responseText);
wijmoTree.itemsSource = data;
},
error: function (xhr) {
// do something here
var errorData = JSON.parse(xhr.responseText);
alert(errorData.errorMessage);
}
}
);
}