aspx跳转页面的符号_解决SpringBoot+MyBatis框架下页面跳转问题与代码优化处理。...
一、關于頁面跳轉的疑問
- 后臺「return "/pool/index"」返回的是字符串,會自動尋找名為“index”的頁面模板文件是怎樣實現的?
答:這是SpringMVC實現的,如果在Action層方法名頂部,不能添加注釋“@ResponseBody”否則后臺會以數據形式返回到前臺。
如果action層中的方法,需要返回頁面,卻添加了“@ResponseBody”注解,就會出現下面問題:
- 如果想要返回以“.shtml”后綴的模板文件,需要怎樣設置?
答:修改application.yml配置文件如下: #################模板參數配置#################thymeleaf:mode: HTML5 prefix: classpath:/templates/ suffix: .shtml servlet: content-type: text/html mvc: static-path-pattern: /** resources: static-locations: classpath:/webapp/, classpath:/META-(換行)INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
- 注意,不建議在action層,RequestMapping中配置以“.html”結束的請求名。
原因:會與頁面文件重復,分不清是文件名還是請求。也不利于后續代碼維護。
- 關于action層返回值是「頁面模板文件名」或「redirect:/請求名」
以下面代碼為例:
@RequestMapping("/receive-success.shtml")
public String reciveSuccess(HttpServletRequest request,Model model) {
String mobile = (String) request.getSession().getAttribute("mobile");
if(mobile == null) {
return "redirect:/index.shtml"; ----------1
}
return "receiveSuccess"; --------------------2
}
1:后臺重定向符號,發起了新的后臺請求;此處未處理完成,需要再發送請求,請求內容是「/index.shtml」
2:在工程中尋找指定文件名的頁面模板文件;此處已處理完成,只需把已處理好的數據(或者沒有數據),發給頁面模板文件展示即可(ps:也可以理解為html后綴的頁面文件)。
二、后臺錯誤處理的疑問
在外部審計平臺中已實現效果:后臺若拋出異常信息{"code","msg"},在某個ErrorAction中統一處理,展現給用戶的是一個自定義錯誤頁面,頁面風格統一,同時能顯示異常信息msg的內容和返回之前正常頁面的按鈕。
三、關于優化equity項目代碼:
用stringMap把所有bean的屬性逐一存進去,影響代碼可讀性,并且寫起來也麻煩
方案1:最簡單的,在bean中添加一些屬性,后臺方法查詢出來的另一些屬性,設置進去。或者根據聯合查詢,獲取需要的屬性值。
方案2:擔心污染bean的有序性?查詢出來的所有屬性,按照bean分類存儲,thymleaf中用「beanA.屬性;beanB.屬性;屬性」的方式取出來。
方案3:最規范的,使用po「存儲object」和vo「展示object」,不同對象的用途不同,缺點是麻煩,如果僅有幾個屬性不建議這樣做。
擔心上線后,由于少數后臺參數錯誤導致整個頁面錯誤?
thymleaf中使用下面寫法:「bean?.屬性」或「屬性.」
特殊字符:三角符號
?
代碼建議:
無需實例化 dateUtils
若需要實例化,請加上@Autoweird或@Resource@service注解
四、頁面代碼優化:
thymleaf模板注意事項
注意:
下面這段代碼中{{if type}} {{else} {{/if}}不能濫用,因為若type的類型為int,后臺傳來的值為「0」則解析時,認為沒有獲取值,因此表格中會顯示為「null」。
{{if type}}<td>${type}</td>{{else}}<td>undefined</td>{{/if}} 親測截圖:選中行的所有值都為0,其中「權益類型、申請環境、有效期限」字段的類型為int,如果使用下面的代碼,效果如下:
{{if name}}<td>${name}</td>{{else}}<td>null</td>{{/if}} {{if type}}<td>${type}</td>{{else}}<td>null</td>{{/if}} {{if productId}}<td>${productId}</td>{{else}}<td>null</td>{{/if}} {{if channelId}}<td>${channelId}</td>{{else}}<td>null</td>{{/if}} {{if currentCostCount}}<td>${currentCostCount}</td>{{else}}<td>null</td>{{/if}} {{if environmentType}}<td>${environmentType}</td>{{else}}<td>null</td>{{/if}} {{if validPeriod}}<td>${validPeriod}</td>{{else}}<td>null</td>{{/if}} {{if approveStatus}}<td>${approveStatus}</td>{{else}}<td>null</td>{{/if}}
總結
以上是生活随笔為你收集整理的aspx跳转页面的符号_解决SpringBoot+MyBatis框架下页面跳转问题与代码优化处理。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苒开头的成语有哪些?
- 下一篇: 3维线程格 gpu_图形处理单元(GPU