You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							151 lines
						
					
					
						
							4.6 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							151 lines
						
					
					
						
							4.6 KiB
						
					
					
				| = 常见问答 | |
| == 如何获取当前的 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 部分添加依赖 | |
| ---- |