jqGrid (Guriddo 5.3.1) へのバージョンアップによるCSSの対応

jqGrid5.3.1 にバージョンを上げたところ、4.7とデフォルトのスタイルが異なり、タイトル行の折り返しが効かないので、サポートに聞いたところ、以下のようにCSSをオーバーライトしたら、元のスタイルに出来ました。


      /* Guriddo 5.3.1 (for same style as 4.7's default) */
      .ui-jqgrid tr.jqgrow td, .ui-userdata, .ui-jqgrid-pager, .ui-jqgrid-titlebar {
        height: auto;
        font-size:11px;
        padding: 2px;
      }

      /* Guriddo 5.3.1 (for same style as 4.7's default) */
      .ui-jqgrid .ui-jqgrid-htable th div, .ui-jqgrid-sortable, .ui-jqgrid-title  {
        height:auto;
        overflow:hidden;
        white-space:normal !important;
        font-size:11px;

      }

ポイントは、thにwhite-space:normal !important;を効かすこと。フォントサイズ、パッディングの指定になります。

バドミントン2018年10大ニュース

自称バドミントン評論家の管理人の独断私的ノミネートです

  • 1 ユーバー杯優勝
  • 2 トーマス杯準優勝
  • 3 渡辺/東野 全英混複制覇
  • 4 桃田完全復帰 デンマークオープン優勝
  • 5 タイツーイン大活躍
      
  • 6 今井監督除名と福島/廣田追いかけ移籍
  • 7 タカマツ、フクヒロ世界ランキング1位をキープ

    2019年第1週WDランキング
  • 8 タカマツ WTファイナルズ制覇
  • 9 桃田 全日本総合制覇
  • 10 JAPAN OPEN 桃田 悲願の初優勝

jsoup connect の仕方

[ 基本 ]
URL をセットして get すればよい


final String URL = "http://xxxxx/yyy";
Document jsdocall = Jsoup.connect(URL)
                .get();

[ 実践 ]
プロキシ、ユーザーエージェント、ヘッダー、リファラーをセット


  private final String USER_AGENT
          = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36";

  private final String HEADER_ACCEPT = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
  private final String HEADER_ACCEPT_LANG = "ja,en-US;q=0.7,en;q=0.3";
  private final String HEADER_ACCEPT_ENCODING = "gzip, deflate, br";
  private final String HEADER_REFERER = "https://www.xxxxx/yyyy";

Document jsdoc = Jsoup.connect(this.kwurl)
                .proxy(this.proxyHost, this.proxyPort)
                .userAgent(USER_AGENT)
                .header("Accept", HEADER_ACCEPT)
                .header("Accept-Language", HEADER_ACCEPT_LANG)
                .header("Accept-Encoding", HEADER_ACCEPT_ENCODING)
                .header("Referer", HEADER_REFERER)
                .timeout(10 * 1000)
                .get();

ブログ再開の連絡

以前運営してた、技術系備忘録などを主にする Catatan hari-harai をサーバーの契約解消時期の手違いで、バックアップなしで消失してしまい、

新たに0から作り直しました。

WordPressが以前のから変わり、まだ使い方がわからない点多く、機能不足感ありますが、少しずつ改良する予定でいます。

掲載トピックにつきましては、以前の技術系備忘録中心から、今まで経験して、広く使ってもらえれば、役に立つツールの紹介、活用シーン、はまりどころ紹介、試用録になる予定です。

技術系だけではつまらないので、バドミントンニュース、軍事研究、コンテナ船も充実させていきたいですので、少しご期待下さい。

jqGrid が優れてる(と思う)点

2014年より前まで、

WEBページの作成としては、JSP, JavaBean を使って、sessionにデータ保持して同期リクエスト、ページ再読込、全更新という、過去からある伝統的方法でした。

googleマップの出現以来、AJax利用のページ再読込なしのページが普通となりつつある頃において、もう限界を感じ始めてました。

時代の流れにちゃんとついて行く為、jQueryベースのグリッドUIをいくつか試しはじめました。

いくつか試した結果、あくまで主観ですが、

1) ネットでの日本語情報が、比較的多い。StackOverFlowのトピックも多い

2) 追加、編集、削除とかのコーディングがわかりやすく書ける

3) 編集フォームがカスタマイズしやすい

4) jQuery-uiのテーマが全部使え、スタイルシートの記述だけで切替られる

5) カラム定義のバリエーションが豊富で、バリデーションチェックも楽

6) DOMがtableを基本としてるので、ツールバーのカスタマイズなどもわかりやすい

7) 他と比べて、デザインが平凡なので、業務システムにふさわしく、ユーザーサイドで好まれる

8) 他と共通してますが、全ブラウザ対応、スマホ、タブレットでも変更なしで表示できる

9) 積極的にバージョンアップ、バグフィックスがなされてる

10) ライセンスが安い

などです。

MyBatis 使って何がうれしいか

業務システムでデータベースは必須と思います。

データベースといえば、SQLが必須と思います。

昔、Java始めた頃は、iBatisもMyBatisもなかったので、Javaに標準についてるjavax.sql使ってJDBC介して操作してましたので、SQLを直接ソースコードにべた書きしたり、プロパティファイルから読んだり、独自テキストファイルに記述されたのを読んだりしていて、

かなり統一性に欠ける、メンテナンス性の悪い、後で苦労することしてました。

iBatis (MyBatisの前身)を知ってから、

コードが大変短くなり、SQLをまとめて分類して置いておけ、やりたい事がJavaコードに制約されず、簡潔に速くできるようになりました。

MyBatisのxml内で、条件分岐、パラメータ以外のメタ文字も指定できるので、プログラム側で行うか、静的に行うかの選択肢が増えて、ケースバイケースな事がしやすくなります。

xml内if利用例


  <!-- 商品マスタアップロードエクセル列マッピングリスト -->
  <select id="selExcelMapList" parameterType="ParamMstMnt" resultMap="ExcelMapMap">
    
    SELECT
      ID, m.IDX_EXCEL, 
      fc_sel_columntitle('goodslist', m.NM_TBLFLD, #{cdLang}) AS NM_EXCELTXT,
      m.NM_TBLFLD, 1 AS FLG_CHECKED, 
      fc_sel_columnfld('goodslist', m.NM_TBLFLD) AS NM_JAVAFLD,
      c.NM_FORMATTER
    FROM
      m_defupldclms m
      INNER JOIN m_jqcolumn c ON (m.NM_TBLFLD = c.NM_TBLFIELD AND c.ID_GRID = 'goodslist')
    WHERE
      1 = 1 
    <if test="!isSK">
      AND c.IS_EDITABLE_CUST = 1 OR c.NM_TBLFIELD = 'CD_JAN'
    </if>    
    
    ORDER BY ID
  </select>

gson 使って何がうれしいか

Javascript + AJax でのフロントエンドが主流となってきて、受信データ型式がJSONが普通と思います。

主に、jqGridのデータ取得バックエンドのJavaで使ってます。

PHPとかでは、JSONへのエンコードが、すぱっとワンステートメントで出来るところ、gsonの存在がわからぬ頃、StringBuffer にJavaオブジェクトのデータをgetして追加、文字列にして応答するという、煩雑で間違いやすく、メンテナンス性の悪い方法を使ってました。

gson使ってからは、JSON型式文字列への変換が、単純配列、単純リストはもちろん、JavaBeanのリストなんかもワンメソッドで出来、コード量削減、間違い減少、メンテナンス性大幅向上してます。

リフレクション使えば、デコードも短いコードでさっと出来て、JSON型式でのリクエストパラメータなんかも簡単に扱えます。