|
|
|
= 常见问答
|
|
|
|
== 如何获取当前的 Locale
|
|
|
|
=== 直接从 request 对象中获取
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
|
|
|
|
request.getLocale();
|
|
|
|
----
|
|
|
|
=== 通过 LocaleResolver 获取
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
import org.springframework.web.servlet.LocaleResolver;
|
|
|
|
|
|
|
|
@Autowired private LocaleResolver localeResolver;
|
|
|
|
|
|
|
|
localeResolver.resolveLocale(request); <1>
|
|
|
|
----
|
|
|
|
|
|
|
|
== Gradle 强制刷新依赖
|
|
|
|
当 gradle 不能正常获取最新的依赖时,可通过以下命令强制刷新
|
|
|
|
[source,bash]
|
|
|
|
----
|
|
|
|
gradle --refresh-dependencies
|
|
|
|
----
|
|
|
|
|
|
|
|
== Gradle 获取依赖清单
|
|
|
|
[source,bash]
|
|
|
|
----
|
|
|
|
gradle --refresh-dependencies
|
|
|
|
----
|
|
|
|
|
|
|
|
== 查看 gitlab 版本号
|
|
|
|
[source,bash]
|
|
|
|
----
|
|
|
|
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
|
|
|
|
----
|
|
|
|
|
|
|
|
== 如何解决 thymeleaf 模板中出现的特定关键词
|
|
|
|
thymeleaf 自带一些自有的关键词,当模板中出现了这样的关键词时,会出现错误,以下给出一些示例:
|
|
|
|
[source,javascript]
|
|
|
|
----
|
|
|
|
//[[ 是 thymeleaf 的关键词,而在 javascript 中可用于定义二维数组
|
|
|
|
var arrays =[[1,2],[3,4]]; //报错
|
|
|
|
var arrays =[ [1,2],[3,4] ]; //通过增加空格解决
|
|
|
|
|
|
|
|
//[( 是 thymeleaf 的关键词,出现在 javascript 的正则表达式中,无法通过增加空格实现
|
|
|
|
var reSection = /^\s*\[(.*)\]\s*$/; //报错
|
|
|
|
|
|
|
|
//解决办法如下:
|
|
|
|
/*<![CDATA[*/
|
|
|
|
var reSection = /^\s*\[(.*)\]\s*$/; //通过 /*<![CDATA[*/ .... /*]]>*/ 进行封装,thymeleaf 将跳过中间的处理,修复错误
|
|
|
|
/*]]>*/
|
|
|
|
----
|
|
|
|
|
|
|
|
== json 字符串及对象转换
|
|
|
|
=== 通过框架提供的工具类实现
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
import org.wsp.framework.core.util.JacksonObjectMapper;
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 对象
|
|
|
|
T obj =JacksonObjectMapper.getDefaultObjectMapper().readValue(jsonString, T.class);
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 数组
|
|
|
|
T[] arrays = JacksonObjectMapper.getDefaultObjectMapper().readValue(jsonString, T[].class);
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 对象集合
|
|
|
|
List<String> objs =JacksonObjectMapper.getDefaultObjectMapper().readValue(jsonString, new TypeReference<List<String>>(){});
|
|
|
|
|
|
|
|
//将 java 对象转换成 json 字符串
|
|
|
|
String jsonString =JacksonObjectMapper.getDefaultObjectMapper().writeValueAsString(obj);
|
|
|
|
----
|
|
|
|
|
|
|
|
=== 通过依赖注入bean实现
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
|
|
|
@Autowired ObjectMapper objectMapper;
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 对象
|
|
|
|
T obj =JacksonObjectMapper.getDefaultObjectMapper().readValue(jsonString, T.class);
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 数组
|
|
|
|
T[] arrays = JacksonObjectMapper.getDefaultObjectMapper().readValue(jsonString, T[].class);
|
|
|
|
|
|
|
|
//将 json 字符串转成 java 对象集合
|
|
|
|
List<String> objs =objectMapper.readValue(jsonString, new TypeReference<List<String>>(){});
|
|
|
|
|
|
|
|
//将 java 对象转换成 json 字符串
|
|
|
|
String jsonString =objectMapper.writeValueAsString(obj);
|
|
|
|
----
|
|
|
|
|
|
|
|
=== 格式化 json 字符串
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
String prettyString =JacksonObjectMapper.pretty(jsonString);
|
|
|
|
----
|
|
|
|
|
|
|
|
== xml 字符串及对象转换
|
|
|
|
=== 通过框架提供的工具类实现
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
import org.wsp.framework.core.util.XmlObjectMapper;
|
|
|
|
|
|
|
|
//将 xml 字符串转成 java 对象
|
|
|
|
T obj =XmlObjectMapper.getDefaultObjectMapper().readValue(xmlString, T.class);
|
|
|
|
|
|
|
|
//将 xml 字符串转成 java 对象集合
|
|
|
|
List<String> objs =XmlObjectMapper.getDefaultObjectMapper().readValue(jsonString, new TypeReference<List<String>>(){});
|
|
|
|
|
|
|
|
//将 java 对象转换成 xml 字符串
|
|
|
|
String jsonString =XmlObjectMapper.getDefaultObjectMapper().writeValueAsString(obj);
|
|
|
|
----
|
|
|
|
|
|
|
|
=== 格式化 xml 字符串
|
|
|
|
[source,java]
|
|
|
|
----
|
|
|
|
String prettyString =XmlObjectMapper.pretty(xmlString);
|
|
|
|
----
|
|
|
|
|
|
|
|
== Mac 查看某个端口占用情况
|
|
|
|
[source,bash]
|
|
|
|
----
|
|
|
|
lsof -i tcp:8888
|
|
|
|
----
|
|
|
|
端口号
|
|
|
|
|
|
|
|
# 显示结果示例
|
|
|
|
caddy 688 wangshaoping 11u IPv6 0xfc05ae24eb2dd587 0t0 TCP *:ddi-tcp-1 (LISTEN)
|
|
|
|
idea 12474 wangshaoping 152u IPv6 0xfc05ae24f0686587 0t0 TCP [::127.0.0.1]:62888->[::127.0.0.1]:ddi-tcp-1 (CLOSED)
|
|
|
|
eclipse 37328 wangshaoping 65u IPv6 0xfc05ae24f0689587 0t0 TCP [::127.0.0.1]:58450->[::127.0.0.1]:ddi-tcp-1 (CLOSED)
|
|
|
|
----
|
|
|
|
|
|
|
|
== Mac 测试某个端口的连通性
|
|
|
|
[source,bash]
|
|
|
|
----
|
|
|
|
nc -vz -w 2 localhost 8888
|
|
|
|
--------- ----
|
|
|
|
主机IP 端口
|
|
|
|
|
|
|
|
# 出现类似以下信息,表示连通
|
|
|
|
Connection to localhost port 8888 [tcp/ddi-tcp-1] succeeded!
|
|
|
|
|
|
|
|
== 如何给前端框架添加第三方依赖
|
|
|
|
=== 在 package.json 文件中添加依赖包
|
|
|
|
=== 在 src/platform/index.ts 文件中添加需要的 css 文件
|
|
|
|
=== 在 webpack.config.mf.cjs 文件中 shared 部分添加依赖
|
|
|
|
=== 在 webpack.env.build.cjs 文件中 cacheGroups 部分添加依赖
|
|
|
|
=== 在 webpack.env.lib.cjs 文件中 externals 部分添加依赖
|
|
|
|
----
|