Java spinrg 4.x 及 jsp 简单心得(PHP转JAVA视角)

1、

增加调试区域。方便调试。

在配置文件config/config.properties 配置 system.debug.mode的值。

调试模式开关(开发环境设置为true,生产环境设置为false)

system.debug.mode=true

在Controller中的.java文件,需要赋值。

// 读取调试模式配置,传递给 JSP 页面

// 从 config.properties 中读取 system.debug.mode 配置项

// 如果配置为 true,则在页面上显示调试信息区域

String debugMode = ConfigPropertiesUtil.getProperty("system.debug.mode");

boolean isDebug = "true".equalsIgnoreCase(debugMode);

map.put("isDebug", isDebug);

view中的.jsp文件,就可以根据配置,展示调试区域了。

<!-- 调试信息区域 -->

<c:if test="${isDebug == true}">

<div class="myda_content" style="margin-top: 20px; border-top: 2px solid #e74c3c; padding-top: 20px;">

<div style="background-color: #fff3cd; padding: 10px; border-left: 4px solid #ffc107; margin-bottom: 15px;">

<strong style="color: #856404;">⚠️ 调试模式</strong> - 此区域仅在开发环境显示,生产环境请在 config.properties 中设置 system.debug.mode=false

</div>

<div style="background-color: #f9f9f9; padding: 15px; border: 1px solid #ddd; border-radius: 4px;">

<h5 style="color: #333; margin-top: 0; margin-bottom: 15px;">

📋 XX科技API字段映射与数据对照

<button onclick="displayDebugInfo()" class="btn btn-mini btn-info" style="margin-left: 10px;">🔄 刷新数据</button>

</h5>

<div style="background-color: #d1ecf1; padding: 8px 12px; border-left: 3px solid #0c5460; margin-bottom: 10px; color: #0c5460; font-size: 13px;">

<strong>💡 说明:</strong>此区域展示了页面获取的数据与XX科技API要求的字段一一对应关系,标注了已映射字段和缺失字段

</div>

<pre id="debugJson" style="background-color: #282c34; color: #abb2bf; padding: 15px; border-radius: 4px; overflow-x: auto; font-size: 12px; font-family: 'Courier New', monospace; max-height: 600px; overflow-y: auto;"></pre>

</div>

</div>

</c:if>

2、

PHP 的 MySQL 查询对表别名要求不严格,单表查询时可以省略

Java + Oracle 环境下,一旦使用了表别名(如 FROM MERCHANT_INFO_AUDIT M),所有字段都必须加上别名前缀 M.,否则会导致查询异常

3

MyBatis中,ResultMap与Base_Columen_list中字段顺序不一致,会导致数据不匹配,数据出错。

ResultMap >= Base_Columen_list

4、

运行测试

mvn exec:java -Dexec.mainClass="com.test.UniappTestFile" -Dexec.classpathScope=compile

java -cp "target/classes;WebRoot/WEB-INF/lib/*" com.test.UniappTestFile

5、

添加字段要注意。

如果涉及 国密SM4 加密字段,则对应的_HASH和_MASK字段也要添加。

6、

JSP页面中,存在则显示,不存在则不显示。

<c:choose>

<c:when test="{not empty parentUser}"\>{parentUser.userName} (ID:${audit.parentId})</c:when>

<c:otherwise>ID:${audit.parentId}</c:otherwise>

</c:choose>

7、shiro权限

aaa:bbb

jsp页面里,权限部分的代码,不能只是注释,注释了也会生效,必须删除才行。

8、

搭配的oracle数据库,如果版本不是12或以上,字段名称的大小不能超过30。

java以长名称著称,搭配的oracle字段名长度居然不能超过30,还好后续的版本字段名长度可以达到120了。

9、

choosen会影响javascript控制select的选项。

如果有全局应用,

可以把$("select").chosen();

修改为 $("select:not(.no-chosen)").chosen();

这样只需要设置class="no-chosen"就能指定哪些select不应用chosen了。

如果是chosen的旧版本,则容器的 class 是 chzn-container(不是 chosen-container)。

10、

早期的JAVA框架与现在的PHP框架对比起来,不是很方便。

比如数据库。PHP有orm,spring没有。

JAVA的优势之一是几乎无运行时报错。因为编译会避免很多问题。

但调试时,没PHP方便。编译会花费额外时间。

相关推荐
Charlie_Byte2 小时前
Netty + Sa-Token 实现 WebSocket 握手认证
java·后端
计算机毕设VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue旅游信息推荐系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·课程设计·旅游
CC.GG2 小时前
【C++】红黑树
java·开发语言·c++
学IT的周星星2 小时前
java常见面试题
java·开发语言
shoubepatien2 小时前
JAVA -- 12
java·后端·intellij-idea
Mr.朱鹏3 小时前
大模型入门学习路径(Java开发者版)上
java·开发语言·spring boot·spring·大模型·llm·transformer
古月฿3 小时前
大学生素质测评系统设计与实现
java·vue.js·redis·mysql·spring·毕业设计
一雨方知深秋3 小时前
程序流程控制
java·for循环·while循环·if分支·switch分支·dowhile循环·嵌套循环
cike_y3 小时前
JSP标签&JSTL标签&EL表达式
java·开发语言·jsp