1216開発ログ


今日やったこと
2つのテーブル情報を同時に作成
今日では,既存の出張情報生成ページにおいて,出張費用情報を含むページに2つの情報を同時に生成する機能を実現した.1つの出張情報を生成するには,同時に4つの出張情報を生成する必要がある.

1.出張情報VOに出張機器のVOlist変数を宣言する
ブログメモ:voで他のvoリストを作成して使用
現在のjspファイルにもformが出張情報voとして存在することを考慮して、出張情報voに出張情報voのリストをリストする変数が作成される.
2.出張情報VOを生成する場合、出張機器に対してVOListを作成する
元コントローラは、新たな出張情報を生成する際に、出張情報VOを生成し、登録ページに送信する.その下で、さんが出張装備用のVOになることを決め、出張VOに入れて送信します.アクセスできないのではないかと思いmodel attributeも加わり、実際には出張VOの変数としてアクセスしています.この方法でまずaddView(出張情報生成インタフェース)を表示する.
	@RequestMapping(value = "/addBtView2.do", method = RequestMethod.POST)
	public String addBtView(@ModelAttribute("searchVO") SampleDefaultVO searchVO, Model model) throws Exception {
		BtVO btVO = new BtVO();
		
		// 미리 ExpVO 4개 만들어서 ExpVOList에 넣어주기 (교통비, 일비, 숙박비, 기타)
		List<BtExpVO> btExpList = new ArrayList<BtExpVO>();
		
		String [] expenseType = {"교통비", "일비", "숙박비", "기타"};
		for (int i=0; i<expenseType.length; i++) {
			BtExpVO exp = new BtExpVO();
			exp.setExpenseType(expenseType[i]);
			exp.setExpenseDetail("");
			exp.setPaymentMethod(0);
			exp.setPrice(0);
			btExpList.add(exp);
		}
		btVO.setBtExpVOList(btExpList);

		model.addAttribute("btVO", btVO);
		model.addAttribute("btExpVOList", btExpList);
		
		return registerPage;
	}
3.出張insert後出張装備単独insert
私はすでに出張情報INSERT機能を実現しており、sqlでもINSERTは別に書かれたものを考慮して順番にクエリーを実行しています.まず、出張情報insertを実行し、そこで生成されたbtIdの値を取得し、その後、btidを外部キーとする費用情報を繰り返し実行する.
	@RequestMapping(value = "/addBt2.do", method = RequestMethod.POST)
	public String addBt(@ModelAttribute("searchVO") SampleDefaultVO searchVO, BtVO btVO, BindingResult bindingResult, Model model, SessionStatus status)
			throws Exception {

		// Server-Side Validation
		beanValidator.validate(btVO, bindingResult);

		if (bindingResult.hasErrors()) {
			model.addAttribute("btVO", btVO);
			return listPage;
		}
		String bt_id = btService.insertBt(btVO); //bt_id값 반환함

		// btVO의 explist 가져와서 Exp 하나씩 insert
		for (BtExpVO expVo : btVO.getBtExpVOList()) {
			expVo.setBtId(bt_id);
			btService.insertBtExp(expVo);
		}

		status.setComplete();
		return "forward:/selectBtList2.do";
	}
出張装備のinsertのみの問題
  • 出張費情報には、selectオプションの値が無条件に文字列を返すpaymentMethodという属性があり、この部分は問題であり、intで黙示的に変換される可能性がある.DBにsqlクエリを入力する場合は、「1」のように引用符で囲み、入れても問題ありません.
  • アルゴリズムはsqlを報告する.xmlのクエリにカッコを付けたので...午前中から午後にかけて1日半悩んだ問題は誤字一つで空っぽでしたが、見つけられてよかったです.
  • 自動合計原価jquery
    // 금액 합계 기능
    $(".price").on("change keyup paste", function() {
      var total = 0;
      $(".price").each(function() {
        total += Number($(this).val());
      });
      // 합계 출력
      $("#priceTotal").html(total);
    });
    2つのテーブル詳細クエリー(進行中)
    詳細クエリーページでは、出張情報と対応する4つの出張情報をインポートして表示する必要があります.sqlクエリでは、1文でインポートできますが、インポートした出張情報の重複性を考慮して、挿入のように個別に選択して表示することにします.やはり一度では成功しない.
    現状
  • 出張+出張ですべて表示されるjspは、情報を生成することができる.詳細なクエリー試行では、出張旅費のリスト情報をクエリーできますが、出張旅費情報(dao,sqlレベル)はクエリーできません.費用明細書情報を登録ページに移動すると、フォームに公開されるかどうかはテストされません.
  • の既存出張情報のみが表示されるjspでは、CRUDは全てである.1番と同じsql文を使用します.
  • 出張情報のみを表示するjspでは、出張情報を選択できますが、出張費用を表示するjspでは、出張情報を選択できず、出張費用リストのみを選択できます.明日解決策を見つけてほしい...