一、下拉框數據回顯
<td class="columnTitle_mustbe">生產廠家:</td>
<td class="tableContentAuto">
<select name="factoryId">
<option value="">--請選擇--</option>
<c:forEach items="${factoryList}" var="f">
<option value="${f.id}"
<c:if test="${obj.factoryId==f.id}">selected</c:if>
>${f.factoryName}</option>
</c:forEach>
</select>
</td>
二、傳參
1、方法
(1)通過po對象,利用springmvc的封裝參數,作爲Controller方法的參數
(2)在action中聲明屬性(推薦)
(3)直接從request中獲取(原始)
2、合同jContractList.jsp列表頁面在每條合同信息後增加下面的按鈕
<a href="${ctx}/cargo/contractproduct/tocreate.action?contractId=${o.id}">[貨物]</a>
3、Controller中接參
@RequestMapping("/cargo/contractproduct/tocreate.action")
public String tocreate(ContractProduct contractProduct, Model model){
//傳遞主表的ID,同時作爲查詢條件
model.addAttribute(“contractId”, contractProduct.getContractId());
傳遞給頁面隱藏域,否則保存時取不到這個值
}
三、POI打印步驟
1、操作步驟
(1)打開一個excel文件
(2)打開當前工作簿
(3)創建行對象
(4)指定列,創建單元格對象
(5)寫入內容
(6)設置樣式:字體、大小、顏色、位置、表格線、換行、格式(字符、數字)
(7)關閉保存excel文件
2、打印 –模板打印
(1)要求
程序可以完成一切,但靜態內容,行高,列高等如果全由程序控制,代碼量大。
用戶要修改其中一項,還需修改代碼。維護性不好。
(2)解決思路
模板,事先調整好行高、列寬
靜動分離,靜態的內容,表頭、標題等可先在模板中設置
3、打印-公式
(1)nCell.setCellType(HSSFCell.CELL_TYPE_FORMULA);
(2)兩列值相乘
nCell.setCellFormula(“F”+String.valueOf(curRow)+"*H"+String.valueOf(curRow)+")");
(3)兩列合計
nCell.setCellFormula(“SUM(I”+String.valueOf(curRow-4)+":I"+String.valueOf(curRow-1)+")");
4、打印-圖片、畫線
(1)圖片畫線都需要先插入矛對象HSSFClientAnchor
5、打印-分頁
(1)sheet.setRowBreak(startRow-1); //在第startRow行設置分頁符
6、打印-合併單元格
new Region(curRow, (short)(1), curRow, (short)3); //橫向合併單元格
region = new Region(curRow-1, (short)(5), curRow-1, (short)6); //縱向合併單元格
sheet.addMergedRegion(region);
7、打印-單元格自適應高度
(1)得到每行文本所佔的高度
算出多行文本中含有幾個回行數,就等價於行數
兩者相乘,並設置單元格的行高
(2)代碼
float height = pioUtil.getCellAutoHeight(printMap.get(“Request”), 12f);
nRow.setHeightInPoints(height);