|  |  |  | = 常见问答 | 
					
						
							|  |  |  | == 如何获取当前的 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 部分添加依赖 | 
					
						
							|  |  |  | ---- |