● 開発のためのインストールおよび構成
https://openjdk.java.net/install/
https://services.gradle.org/distributions/gradle-3.3-all.zip
https://www.eclipse.org/
● 開発キットとソースのダウンロード
abilists_client
をCloneする$ git clone https://github.com/abilists/abilists_client.git会社自体の会社の固有業務向けの機能開発できるようにClient Controllerを無料で提供しています。
abilists_client
)をCloneしてダウンロードし、Controllerのソースコードをオープンしたイメージです。
https://github.com/abilists/plugin_sampleGitで
abilists_plugins
をCloneする $ git clone https://github.com/abilists/plugin_sample.git以下は、サンプルプラグインのソースをCloneして、Eclipseでオープンしたソースです。
● ソースの構成とそれぞれの役割を説明します。
Controller内で画面端に表現できるようにModelオブジェクトを生成します。すべてのデータの出力は、abilistsModelを通じて示しています。
新しい画面に新しいデータを作成して表現するには、AbilistsModelをextends
して表現してください。
AbilistsModel abilistsModel = new AbilistsModel();
ログインユーザーの情報をセッションで持ってきます。
this.handleSessionInfo(request.getSession(), sltSamplePara);
入力データのチェック後にエラーがあることを確認します。エラーがある時にエラー画面に切り替わります。
Map mapErrorMessage = new HashMap();
if (bindingResult.hasErrors()) {
response.setStatus(400);
mapErrorMessage = this.handleErrorMessages(bindingResult.getAllErrors(), locale);
model.addAttribute("mapErrorMessage", mapErrorMessage);
return "apps/errors/parameterErrors";
}
ワンタイムトーク(OPT)をチェックします。 ユーザーが多ければ、トークンストアをmemcached
に移すことをお勧めします。
String key = this.makeKey(istSamplePara.getUserId(), AbstractBaseController.PREFIX_IST_KEY);
if (!istSamplePara.getToken().equals(commonBean.getTokenExpireMap(key))) {
mapErrorMessage.put("errorMessage", message.getMessage("parameter.error.token.message", null, locale));
model.addAttribute("errorMessage", mapErrorMessage);
return "apps/errors/parameterErrors";
}
データ処理が正常な場合に、画面端にメッセージを表示するための部分です。
redirectAttributes.addFlashAttribute("save", "completed");
ClientServiceImpl
クラスで処理するCRUDビジネスロジックです。@Override public Listデータ入力するMethodです。 (ist = insert)sltCleintList(CommonPara commonPara) throws Exception { return null; }
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean istCleint(CommonPara commonPara) throws Exception { return true; }データ更新するMethodです。 (udt = update)
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean udtUCleint(CommonPara commonPara) throws Exception { return true; }データ削除するMethodです。 (dlt = delete)
@Override @Transactional(rollbackFor = Exception.class, propagation = Propagation.REQUIRED) public boolean dltCleint(CommonPara commonPara) throws Exception { return true; }
● 開発環境で実行します。
abilists_client
をJettyを介してLocalで実行します。 gradle clean
コマンドを一度実行してJettyを起動します。$ cd ~/git/abilists_client $ gradle clean $ gradle jettyRun