android 优化,webapp

master
wangbing 6 years ago
parent 391876e0d9
commit bbe8f1c65e

@ -638,8 +638,12 @@ public class SpringBootCallable implements Callable {
Tool.outputResource(option + "/resources/static/dist/index.min.css", new File(dist.getAbsolutePath(), "index.min.css"));
//vonic
Tool.outputResource(option + "/resources/static/dist/vonic.min.js", new File(dist.getAbsolutePath(), "vonic.min.js"));
Tool.outputResource(option + "/resources/static/dist/vonic.min.css", new File(dist.getAbsolutePath(), "vonic.min.css"));
// Tool.outputResource(option + "/resources/static/dist/vonic.min.js", new File(dist.getAbsolutePath(), "vonic.min.js"));
// Tool.outputResource(option + "/resources/static/dist/vonic.min.css", new File(dist.getAbsolutePath(), "vonic.min.css"));
//mint-ui
Tool.outputResource(option + "/resources/static/dist/mint-ui.min.js", new File(dist.getAbsolutePath(), "mint-ui.min.js"));
Tool.outputResource(option + "/resources/static/dist/mint-ui.min.css", new File(dist.getAbsolutePath(), "mint-ui.min.css"));
File fonts = new File(dist.getAbsolutePath(), "fonts");
fonts.mkdirs();
@ -672,7 +676,7 @@ public class SpringBootCallable implements Callable {
Tool.outputResource(option + "/resources/templates/control/footer.ftl", new File(control.getAbsolutePath(), "footer.ftl"));
Tool.outputResource(option + "/resources/templates/control/macro.ftl", new File(control.getAbsolutePath(), "macro.ftl"));
Tool.outputResource(option + "/resources/templates/layout/default.ftl", new File(layout.getAbsolutePath(), "default.ftl"));
Tool.outputResource(option + "/resources/templates/layout/wap.ftl", new File(layout.getAbsolutePath(), "wap.ftl"));
Tool.outputResource(option + "/resources/templates/layout/app.ftl", new File(layout.getAbsolutePath(), "app.ftl"));
Tool.outputResource(option + "/resources/templates/screen/demo.ftl", new File(screen.getAbsolutePath(), "demo.ftl"));
Tool.outputResource(option + "/resources/templates/screen/index.ftl", new File(screen.getAbsolutePath(), "index.ftl"));
Tool.outputResource(option + "/resources/templates/403.ftl", new File(templates.getAbsolutePath(), "403.ftl"));

@ -2,6 +2,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="${package}">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:name="${domain}.WBUIApplication"
android:allowBackup="true"

@ -39,5 +39,5 @@
<color name="app_color_theme_7">#5A9AEF</color> <!-- Blue Jeans -->
<color name="app_color_theme_8">#AC8FEF</color> <!-- Lavender -->
<color name="app_color_theme_9">#EE85C1</color> <!-- Pink Rose -->
<color name="app_color_theme_10">#04ABD1</color>
<color name="app_color_theme_10">#26a2ff</color>
</resources>

@ -1,6 +1,5 @@
package ${basePackage}.action;
import ${basePackage}.framework.utils.LogUtil;
import ${basePackage}.framework.base.FileUploadResponse;
import ${basePackage}.framework.base.BaseResponse;
import ${basePackage}.framework.base.ErrorType;
@ -26,8 +25,9 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import org.springframework.beans.factory.annotation.Value;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@Controller
@ControllerAdvice
@ -94,7 +94,7 @@ public class GlobalController implements ErrorController {
* @param model
* @param request
*/
@RequestMapping("/**")
@RequestMapping({"/**.htm", "/"})
public void hold(HttpServletRequest request, Model model) {
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
@ -103,6 +103,13 @@ public class GlobalController implements ErrorController {
if ("/".equals(servletPath)) {
servletPath = "/" + homePage;
}
if (servletPath.matches("(.+)\\.htm")) {
Pattern compile = Pattern.compile("(.+)\\.htm");
Matcher matcher = compile.matcher(servletPath);
if (matcher.find()){
servletPath = matcher.group(1);
}
}
LocalData.setTarget(servletPath);
// 尝试执行Target Screen执行器(服务器渲染),不存在则直接返回视图模板(Ajax渲染)

@ -1,8 +1,6 @@
package ${basePackage}.framework.freemarker;
import org.springframework.http.HttpStatus;
import ${basePackage}.framework.utils.LocalData;
import ${basePackage}.framework.utils.LogUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@ -13,7 +11,6 @@ import org.springframework.web.servlet.view.DefaultRequestToViewNameTranslator;
import org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.Locale;
import java.util.Map;
@ -51,7 +48,7 @@ public class ViewNameTranslator extends DefaultRequestToViewNameTranslator {
String viewName = "";
try {
LocaleResolver localeResolver = (LocaleResolver) request.getAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE);
String servletPath = request.getServletPath();
String servletPath = LocalData.getTarget();
if (servletPath != null && "/".equals(servletPath)) {
servletPath = homePage;
} else {
@ -70,10 +67,9 @@ public class ViewNameTranslator extends DefaultRequestToViewNameTranslator {
viewName = sb.toString();
View view = viewResolver.resolveViewName(viewName, locale);
if (view == null) {
LogUtil.e("can not find screen.");
HttpServletResponse response = LocalData.getResponse();
response.setStatus(HttpStatus.NOT_FOUND.value());
return "";
// LogUtil.e("can not find screen.");
// HttpServletResponse response = LocalData.getResponse();
// response.setStatus(HttpStatus.NOT_FOUND.value());
}
}

@ -13,13 +13,13 @@ spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
# 根路径、欢迎页
web.welcome.page = index
web.welcome.page = index.htm
# 需要验证授权
web.url.auth.included = /**
# 不需要验证授权
web.url.auth.excluded = /favicon.ico,/static/**,/open/**,/api,/index,/,/login
web.url.auth.excluded = /favicon.ico,/static/**,/open/**,/api,/index.htm,/,/login.htm,/app.htm
# 默认的登录URL
web.url.login = /login
web.url.login = /login.htm
# 日志配置
logging.path=D://
logging.levels=DEBUG

@ -14,13 +14,13 @@ spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
# 根路径、欢迎页
web.welcome.page = index
web.welcome.page = index.htm
# 需要验证授权
web.url.auth.included = /**
# 不需要验证授权
web.url.auth.excluded = /favicon.ico,/static/**,/open/**,/api,/index,/,/login
web.url.auth.excluded = /favicon.ico,/static/**,/open/**,/api,/index.htm,/,/login.htm,/app.htm
# 默认的登录URL
web.url.login = /login
web.url.login = /login.htm
# 日志配置
logging.path = /root/
logging.levels=INFO

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,127 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<#--baseJs-->
<script src="${Uri.getUrl('/static/dist/lib.min.js')}" type="text/javascript"></script>
<#--移动端ui-->
<script src="${Uri.getUrl('/static/dist/mint-ui.min.js')}" type="text/javascript"></script>
<link href="${Uri.getUrl('/static/dist/mint-ui.min.css')}" rel="stylesheet"/>
<#--ajax接口-->
<script src="${Uri.getUrl('/static/js/ajax.js')}" type="text/javascript"></script>
<link href="${Uri.getUrl('/static/css/base.css')}" rel="stylesheet"/>
<style>
* {
padding: 0px;
margin: 0px;
}
html,body,#app{
width: 100%;
height: 100%;
}
.left-in-right-out-enter-active, .left-in-right-out-leave-active {
transition: all 0.3s linear;
position: absolute;
}
.left-in-right-out-enter {
transform: translateX(-100%);
opacity: 0;
}
.left-in-right-out-leave-to {
transform: translateX(100%);
opacity: 0;
}
.right-in-left-out-enter-active, .right-in-left-out-leave-active {
transition: all .3s linear;
position: absolute;
}
.right-in-left-out-enter {
transform: translateX(100%);
}
.right-in-left-out-leave-to {
transform: translateX(-100%);
}
.left-in-right-out-enter-active, .left-in-right-out-leave-active {
transition: all 0.3s linear;
position: absolute;
}
.left-in-right-out-enter {
transform: translateX(-100%);
opacity: 0;
}
.left-in-right-out-leave-to {
transform: translateX(100%);
opacity: 0;
}
.right-in-left-out-enter-active, .right-in-left-out-leave-active {
transition: all .3s linear;
position: absolute;
}
.right-in-left-out-enter {
transform: translateX(100%);
}
.right-in-left-out-leave-to {
transform: translateX(-100%);
}
</style>
</head>
<body>
<div id="app">
<transition :name="transitionName">
<router-view></router-view>
</transition>
</div>
<template id="home">
<div class="view">
<mt-header title="Hello world">
<router-link to="/" slot="left">
<mt-button icon="back">返回</mt-button>
</router-link>
<mt-button icon="more" slot="right"></mt-button>
</mt-header>
<div class="content" style="text-align: center;padding-top: 200px">
Hello world
</div>
</div>
</template>
<script>
var router = new VueRouter({
routes: [
{
path: '/',
name: 'home',
component: Vue.extend({template: '#home'})
}
]
});
var app = new Vue({
el: '#app',
data: {
transitionName: ''
},
router: router,
watch: {
'$route': function (to, from) {
this.transitionName = to.meta.index < from.meta.index ? 'left-in-right-out' : 'right-in-left-out'
}
}
})
</script>
</html>

@ -1,48 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<#--baseJs-->
<script src="${Uri.getUrl('/static/dist/lib.min.js')}" type="text/javascript"></script>
<#--vonic移动端ui-->
<script src="${Uri.getUrl('/static/dist/vonic.min.js')}" type="text/javascript"></script>
<link href="${Uri.getUrl('/static/dist/vonic.min.css')}" rel="stylesheet"/>
<#--ajax接口-->
<script src="${Uri.getUrl('/static/js/ajax.js')}" type="text/javascript"></script>
<link href="${Uri.getUrl('/static/css/base.css')}" rel="stylesheet"/>
</head>
<body>
<div id="app">
<router-link to="/">首页</router-link>
<router-link to="/next">next</router-link>
<transition name="wb-zoom-in-top">
<router-view></router-view>
</transition>
</div>
<template id="home"><div>home</div></template>
<template id="next"><div>next</div></template>
<script>
var router = new VueRouter({
routes:[
{
path: '/',
name: 'home',
component:Vue.extend({template: '#home'})
},
{
path: '/next',
name: 'next',
component:Vue.extend({template: '#next'})
}
]
});
var app = new Vue({
el: '#app',
router:router
})
</script>
</html>
Loading…
Cancel
Save

Powered by TurnKey Linux.