鍍金池/ 問答/ 網(wǎng)絡(luò)安全問答
妖妖 回答

定位為fixed吧,不過有兼容性問題;
定位為absolute,設(shè)置容器為全屏高度

涼汐 回答

很簡(jiǎn)單,在前臺(tái)代碼中先搞個(gè)script標(biāo)簽,然后在js代碼區(qū)域里渲染一個(gè)模板變量即可。
比如這樣:

<html>
<head></head>
<body>
<p>xxxxxxxxxx</p>
<script>
    var titleFromServerRender = '{{ title }}';
</script>
</body>
</html>

但這里要確保,你在node server端渲染時(shí)傳給swig的title參數(shù)一定是字符串。同時(shí) 考慮到xss攻擊的風(fēng)險(xiǎn),確保此變量不會(huì)被注入攻擊。

臭榴蓮 回答

ie11 了,兼容性問題應(yīng)該沒有你說的那么不堪,你自己代碼有問題吧。

js 處理也什么問題,只要你自己在代碼層面能組織得好。

陌顏 回答

你這寫的有點(diǎn)矛盾吧,'javascript:;'應(yīng)該放在href這個(gè)屬性里面的啊

抱緊我 回答

增加SelectionChanged監(jiān)聽事件,可以返回框選的構(gòu)件列表

viewer3D.addEventListener("SelectionChanged",function(objectdata){

console.log("SelectionChanged");
box = objectdata.boundingBox;
console.log(objectdata);

})

萌小萌 回答

所謂的php只渲染模板是指路由還是PHP控制然后render頁面,數(shù)據(jù)靠發(fā)送http請(qǐng)求,往JAVA寫的api之類的獲取還是怎么樣

一般有PHP棧了, 很少很少會(huì)融入Java棧,如果二者都有,那么一般指的是PHP拿到請(qǐng)求,對(duì)請(qǐng)求解析,從Java中調(diào)用業(yè)務(wù)所需API最后返回給web服務(wù)器,這么做對(duì)目的限于分布式集群中,Java主演的更后端,對(duì)性能要求更大,擁有更多調(diào)用系統(tǒng)API的最最最后端

焚音 回答

我找到問題了,原因是 我使用springboot的版本是 2.0.3,改回1.5.9就好了
用springboot 2 集成 redis + jedis + spring-session + security 做登錄和session共享 還需要在研究下

vagrant或MAMP了解一下...

巴扎嘿 回答

哈哈,
開PAC模式哇。 然后設(shè)置 PAC 和 Global 的快捷鍵。 以及開關(guān)Shadowsocks的快捷鍵。
如此也可來去自如~

夏木 回答

后端角度:并發(fā)達(dá)到一定數(shù)量的時(shí)候,后臺(tái)服務(wù)器彈性擴(kuò)容。
前端角度:超過一定人數(shù)要求付費(fèi)呀。

誮惜顏 回答

圖片沒加載出來了,請(qǐng)重新上傳

莫小染 回答

idea對(duì)java的支持那是無可挑剔,不過kotlin開發(fā)出來現(xiàn)在主要用于寫安卓,對(duì)于寫web別人jetbrains貌似也沒有太在意,只是說和java是100%兼容。

短嘆 回答

開啟事務(wù),只有操作都成功之后再commit提交事務(wù),如果操作有失敗的就rollback回滾。
$model->startTrans();
$row = $model->where(['id'=>1])->update(['status'=>4]);
if ($row>0) {
//上面操作成功
//執(zhí)行自定義操作
$model->commit();
}else {
$model->rollback();
}

嘟尛嘴 回答

[[其實(shí)是test(內(nèi)建命令)的別名,你在zsh下執(zhí)行run-help test就懂了,這個(gè)語法和bash中的test命令完全相同,當(dāng)然也和/usr/bin/test語法相同。

具體的參數(shù)幫助在man test就有

萌面人 回答

我們現(xiàn)在這個(gè)項(xiàng)目用工作流,是單獨(dú)把工作流做為一個(gè)模塊,涉及業(yè)務(wù)狀態(tài)相關(guān)的代碼全放在里面。包括申請(qǐng)、審核通過拒絕等等。這樣無論是什么類型的申請(qǐng)(如需求申請(qǐng),代碼合并申請(qǐng)等)都可以直接用這個(gè)工作流。并在工作流進(jìn)行狀態(tài)對(duì)應(yīng)的相應(yīng)處理。這樣就不用在其他的業(yè)務(wù)代碼里重新進(jìn)行狀態(tài)更改的判斷了。感覺還是很方便的。

不過你說的如果只有通過,并且沒有審批的過程,這樣我個(gè)人覺得確實(shí)不用工作流....但是也要在狀態(tài)更改后進(jìn)行判斷,所以我覺得放在工作流里也是可以的- -

巫婆 回答

preSystem(){

 this.leafCheckedNodes = []
 ...
}

每次執(zhí)行的時(shí)候清空就好了

瞄小懶 回答

mybatis 的話這個(gè)可以實(shí)現(xiàn)的, 我之前是寫過一個(gè)類似的

表結(jié)構(gòu):

CREATE TABLE `admin_menu` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '自增id',
  `name` varchar(64) NOT NULL COMMENT '菜單名',
  `parent_id` bigint(3) NOT NULL DEFAULT 0 COMMENT '父菜單的id, 如果是父菜單這個(gè)值為0',
  `url` varchar(500) NOT NULL DEFAULT '' COMMENT '菜單的鏈接',
  `icon` varchar(100) NOT NULL DEFAULT '' COMMENT '圖標(biāo)',
  `menu_index` bigint(3) NOT NULL DEFAULT 0 COMMENT '展示的順序',
  `create_time` datetime NOT NULL COMMENT '創(chuàng)建時(shí)間',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新時(shí)間',
  PRIMARY KEY (`id`),
  KEY `uq_id` (`id`),
  KEY `uq_parent_id` (`parent_id`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='管理后臺(tái)的菜單';

其中parentId 跟你的typeParent類似, 記錄上一級(jí)的id


AdminMenu (Model):

public class AdminMenu implements Serializable {

    private static final long serialVersionUID = -6535315608269812875L;
    private int id;
    private String name;
    private int parentId;
    private String url;
    private String icon;
    private int menuIndex;
    private Date createTime;
    private Date updateTime;
    private List<AdminMenu> subMenus;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getParentId() {
        return parentId;
    }

    public void setParentId(int parentId) {
        this.parentId = parentId;
    }

    public String getUrl() {
        return url;
    }

    public void setUrl(String url) {
        this.url = url;
    }

    public String getIcon() {
        return icon;
    }

    public void setIcon(String icon) {
        this.icon = icon;
    }

    public int getMenuIndex() {
        return menuIndex;
    }

    public void setMenuIndex(int menuIndex) {
        this.menuIndex = menuIndex;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public List<AdminMenu> getSubMenus() {
        return subMenus;
    }

    public void setSubMenus(List<AdminMenu> subMenus) {
        this.subMenus = subMenus;
    }

    @Override
    public String toString() {
        return JsonUtil.toJson(this);
    }
}

Model的屬性跟表結(jié)構(gòu)一一對(duì)應(yīng), 最下面多了一個(gè)subMenu, 里面就是AdminMenu


下面是admin_menu.xml中的內(nèi)容

查詢SQL:

<select id="selectAllMenus" resultMap="adminMenuResult">
    SELECT
        id, name, parent_id, url, icon, menu_index, create_time, update_time
    FROM
      admin_menu
    WHERE parent_id=0
    ORDER BY menu_index
</select>

這里返回的就是adminMenuResult結(jié)果集:

<resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="parent_id" property="parentId"/>
    <result column="url" property="url"/>
    <result column="icon" property="icon"/>
    <result column="menu_index" property="menuIndex"/>
    <result column="create_time" property="createTime"/>
    <result column="update_time" property="updateTime"/>
    <association property="subMenus" column="id" select="selectSubMenus"/>
</resultMap>

其中這一行是最重要的

 <association property="subMenus" column="id" select="selectSubMenus"/>

這里用selectSubMenus來進(jìn)行了另一個(gè)查詢, 查詢的參數(shù)為id, 把查詢出來的結(jié)果放在Model中的subMenus屬性中.

selectSubMenus查詢SQL:

<select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
    select
      id, name, parent_id, url, icon, menu_index, create_time, update_time
    from admin_menu
    where parent_id = #{id}
    order by menu_index
</select>

這里就是用第一層的id來查詢有沒有子菜單. 這里的#{id}就是上面那個(gè)結(jié)果集的column參數(shù).
因?yàn)槲抑挥袃蓪硬藛? 所以這里用了一個(gè)新的結(jié)果集,跟上面的區(qū)別就是沒有subMenus字段.

adminSubMenuResult:

<resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
    <id column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="parent_id" property="parentId"/>
    <result column="url" property="url"/>
    <result column="icon" property="icon"/>
    <result column="menu_index" property="menuIndex"/>
    <result column="create_time" property="createTime"/>
    <result column="update_time" property="updateTime"/>
</resultMap>

如果你有三,四級(jí)的話你可以一個(gè)結(jié)果集. (第一層查詢的時(shí)候用id去查詢第二層, 第二層查詢的時(shí)候用第二層的id去查詢第三層...)


下面我貼一下整個(gè)的admin_menu.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="biz.menzil.admin.core.dao.AdminMenuDao">

    <resultMap id="adminMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="url" property="url"/>
        <result column="icon" property="icon"/>
        <result column="menu_index" property="menuIndex"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
        <association property="subMenus" column="id" select="selectSubMenus"/>
    </resultMap>

    <resultMap id="adminSubMenuResult" type="biz.menzil.admin.core.model.AdminMenu">
        <id column="id" property="id"/>
        <result column="name" property="name"/>
        <result column="parent_id" property="parentId"/>
        <result column="url" property="url"/>
        <result column="icon" property="icon"/>
        <result column="menu_index" property="menuIndex"/>
        <result column="create_time" property="createTime"/>
        <result column="update_time" property="updateTime"/>
    </resultMap>

    <insert id="insertAdminMenu">
        INSERT INTO admin_menu(name, parent_id, url, icon, menu_index, create_time)
        VALUES (
        #{menu.name},
        #{menu.parentId},
        #{menu.url},
        #{menu.icon},
        #{menu.menuIndex},
        NOW()
        )
    </insert>

    <select id="selectById" resultMap="adminMenuResult">
        SELECT
            id, name, parent_id, url, icon, menu_index, create_time, update_time
        FROM
          admin_menu
        WHERE id = #{id}
    </select>

    <select id="selectAllMenus" resultMap="adminMenuResult">
        SELECT
            id, name, parent_id, url, icon, menu_index, create_time, update_time
        FROM
          admin_menu
        WHERE parent_id=0
        ORDER BY menu_index
    </select>

    <select id="selectSubMenus" parameterType="long" resultMap="adminSubMenuResult">
        select
          id, name, parent_id, url, icon, menu_index, create_time, update_time
        from admin_menu
        where parent_id = #{id}
        order by menu_index
    </select>

    <delete id="deleteAdminMenu">
        DELETE FROM
        admin_menu
        WHERE id=#{id}
    </delete>

    <update id="updateAdminMenu" >
        UPDATE admin_menu
        <set>
            <if test="menu.name != null and menu.name != ''">
                name=#{menu.name},
            </if>
            <if test="menu.parentId >= 0">
                parent_id=#{menu.parentId},
            </if>
            <if test="menu.url != null and menu.url != ''">
                url=#{menu.url},
            </if>
            <if test="menu.icon != null and menu.icon != ''">
                icon=#{menu.icon},
            </if>
            <if test="menu.menuIndex > 0">
                menu_index=#{menu.menuIndex},
            </if>
        </set>
        WHERE id=#{menu.id}
    </update>

</mapper>
半心人 回答

http協(xié)議的url都會(huì)被谷歌瀏覽器攔截,看看你們能不能換成https協(xié)議

萌小萌 回答

是css-modules沒配置對(duì)吧