精华内容
下载资源
问答
  • 此资源包含百度地图自定义大头针(Marker),自定义信息窗口(InfoBox),还包含点击Marker弹出自定义信息窗口等功能的demo
  • 高德地图显示自定义信息窗体
                         

    高德地图显示自定义信息窗体

    <!doctype html><html><head>    <meta charset="utf-8">    <meta http-equiv="X-UA-Compatible" content="IE=edge">    <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">    <title>自定义窗体</title>  <link href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet">    <link rel="stylesheet" href="http://cache.amap.com/lbs/static/main1119.css"/>    <script src="//cdn.bootcss.com/jquery/2.2.4/jquery.js"></script><script src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>    <script type="text/javascript"            src="http://webapi.amap.com/maps?v=1.3&key=您申请的key值"></script>    <script type="text/javascript" src="http://cache.amap.com/lbs/static/addToolbar.js"></script></head><body><div id="container"></div><script type="text/javascript">    //初始化地图对象,加载地图    var map = new AMap.Map("container", {resizeEnable: true});    var lnglats = [        [116.368904, 39.923423],        [116.382122, 39.921176],        [116.387271, 39.922501],        [116.398258, 39.914600]    ];    var infoWindow = new AMap.InfoWindow({offset: new AMap.Pixel(0, -30)});    for (var i = 0, marker; i < lnglats.length; i++) {        var marker = new AMap.Marker({            position: lnglats[i],            map: map        });        marker.content = '<h3>我是第' + (i + 1) + '个XXX</h3>';        marker.content += '<div>经度:'+lnglats[i][0]+'</div>';        marker.content += '<div>纬度:'+lnglats[i][1]+'</div>';        marker.content += '<div><button  class="btn btn-suucess btn-xs">历史轨迹</button>';        marker.content += '&nbsp;<button class="btn btn-warning btn-xs">实时跟踪&nbsp;</button>';        marker.content += '&nbsp;<button  class="btn btn-danger btn-xs">设置</button></div>';        marker.on('click', markerClick);        marker.emit('click', {target: marker});    }    function markerClick(e) {        infoWindow.setContent(e.target.content);        infoWindow.open(map, e.target.getPosition());    }    map.setFitView();</script></body></html>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • steam自定义信息框Valve’s self-branded Steam Controller might just be the most exciting thing to emerge in video game inputs in a decade…but that doesn’t mean it’s intuitive to set up. Just as the ...
    steam自定义信息框

    steam自定义信息框

    Valve’s self-branded Steam Controller might just be the most exciting thing to emerge in video game inputs in a decade…but that doesn’t mean it’s intuitive to set up. Just as the double-touchpad design takes some getting used to, its software needs some serious tweaking by the end user.

    Valve的自有品牌Steam控制器可能只是十年来在视频游戏输入中出现的最令人兴奋的东西……但这并不意味着它的设置就很直观。 正如双触摸板设计需要一定的习惯一样,其软件也需要最终用户进行一些认真的调整。

    轻松享受大图片模式并配对控制器 (Get Comfy with Big Picture Mode and Pair Your Controller)

    Unfortunately, the Steam Controller can only be adjusted in Steam’s TV-friendly Big Picture Mode. Valve is probably hoping to promote SteamOS and Steam Link streaming device, but it effectively means that normal PC users are forced into a game console-style interface for adjusting their Steam Controller settings. So, to begin the process, you’ll have to use your mouse to click on the Big Picture Mode button at the top right corner of the desktop Steam interface.

    不幸的是,只能在Steam的电视友好大图片模式下调整Steam控制器。 Valve可能希望推广SteamOSSteam Link流媒体设备 ,但这实际上意味着普通PC用户被迫进入游戏机风格的界面来调整其Steam Controller设置。 因此,要开始该过程,您必须使用鼠标单击桌面Steam界面右上角的Big Picture Mode按钮。

    If you haven’t connected the controller yet, plug in its wireless USB dongle, then click or select the “Settings” icon in Big Picture Mode (the gear icon on the top right) followed by “Controller Settings.”

    如果尚未连接控制器,请插入其无线USB加密狗,然后在大图片模式下单击或选择“设置”图标(右上角的齿轮图标),然后单击“控制器设置”。

    Click “Add a Steam Controller” to begin the wireless connection process, then press and hold the central Steam button and the X button on the Controller itself. It should appear under the “Detected Controllers” section of the screen.

    单击“添加Steam控制器”开始无线连接过程,然后按住控制器本身的中央Steam按钮和X按钮。 它应显示在屏幕的“检测到的控制器”部分下。

    Now things get considerably less intuitive. Back out of the Settings menu with Escape (or the B button on the controller) until you’re back in the main Big Picture Mode interface.

    现在事情变得不那么直观了。 使用Escape键(或控制器上的B按钮)退出“设置”菜单,直到返回主“大图片模式”主界面。

    调整各个游戏的设置 (Tweak Your Settings for Individual Games)

    Next, click or select the central “Library” option in Big Picture Mode, then click on any game you have installed to go into its individual menu. On the left-hand column, click “Manage Game.”

    接下来,在大图片模式下单击或选择中央的“库”选项,然后单击已安装的任何游戏进入其单独菜单。 在左侧列上,单击“管理游戏”。

    Click “Controller Configuration” in the next menu. (If you don’t see it, make sure the Steam Controller is powered on.)

    在下一个菜单中单击“控制器配置”。 (如果看不到,请确保Steam控制器已打开电源。)

    Now you’ve finally arrived at the primary button configuration screen. All of the operations below can be set up for each individual game in your Steam library.

    现在,您终于到达了主按钮配置屏幕。 可以为Steam库中的每个游戏设置以下所有操作。

    (You can also get here while playing any Steam game—simply press and hold the center Steam button.)

    (您在玩任何Steam游戏时也可以到达这里-只需按住中心的Steam按钮即可。)

    自定义基本按钮 (Customize Basic Buttons)

    In most games, the Steam Controller will default to an Xbox-style layout, with the setup following the standard interface and the left touchpad area doubling as a right joystick input. Clicking on any of the buttons in this screen will open up custom assignment options, as seen below.

    在大多数游戏中,Steam Controller将默认为Xbox风格的布局,其设置遵循标准界面,并且左触摸板区域加倍,以作为右操纵杆输入。 单击此屏幕中的任何按钮将打开自定义分配选项,如下所示。

    Any button on the Steam Controller can be manually bound to almost any input on your computer. This includes any other button on the Steam Controller, any default keyboard or mouse button, and special actions like taking a screenshot or even powering down the computer. To bind a single button, just click it in this screen and press Escape or B to go back. This is all most users will need when trying to redefine core gaming functions to the controller.

    Steam Controller上的任何按钮都可以手动绑定到计算机上几乎任何输入。 这包括Steam控制器上的任何其他按钮,任何默认的键盘或鼠标按钮,以及特殊操作,例如截屏或关闭计算机电源。 要绑定单个按钮,只需在此屏幕中单击它,然后按Escape或B即可返回。 这是大多数用户试图将核心游戏功能重新定义为控制器时所需的全部。

    创建多按钮组合 (Create Multi-Button Combos)

    To bind multiple commands to a single button in this interface, click “Toggle Multi-Button On” or press the Y button on the controller. Then click as many buttons as you’d like in sequence.

    要将多个命令绑定到该界面中的单个按钮,请单击“ Toggle Multi-Button On”或按控制器上的Y按钮。 然后依次点击任意数量的按钮。

    The binding will press all of these buttons at the same time—for example, a “rocket jump” bind might be useful for activating both the right trigger (fire) and A (jump) button at once. Bind it to the right bumper and you’ll have an instant rocket jump button, no reflexes required.

    绑定将同时按下所有这些按钮,例如,“火箭弹跳”绑定可能对同时激活右触发(射击)和A(跳跃)按钮很有用。 将其绑定到右保险杠,您将获得一个即时的火箭跳动按钮,无需进行任何反射。

    Of course, there are a limited amount of buttons on the Steam Controller to bind, so you’ll have to choose carefully if you’re adding custom combinations…unless you want to dig a little deeper.

    当然,Steam Controller上绑定的按钮数量有限,因此,如果要添加自定义组合,则必须谨慎选择……除非您想更深入一点。

    使用激活器为按钮提供更多操作 (Give Buttons More Actions with Activators)

    The Steam Controller’s Activators options are where things start to get really interesting…and tricky. Activators allow you to create conditional states to a button, making it do different things based on the timing of your press. You can activate the modified state with the Activation Type menu:

    Steam Controller的Activators选项是使事情开始变得非常有趣和棘手的地方。 激活器使您可以为按钮创建条件状态,从而使其可以根据按下的时间来执行不同的操作。 您可以使用“激活类型”菜单激活修改后的状态:

    • Regular Press: a simple press and release action, a normal button.

      常规按下 :一个简单的按下和释放操作,一个普通按钮。

    • Double Press: a quick double-tap of a button. Think of it as the difference between a normal click and a double-click on the desktop.

      双击 :快速双击按钮。 可以将其视为在桌面上正常单击和双击之间的区别。

    • Long Press: press and hold the button.

      长按 :按住按钮。

    • Start Press and Release Press: conditional actions for when you press and release the button. These are less useful.

      开始按下并释放按下 :按下和释放按钮时的条件动作。 这些用处不大。

    Activators basically let you roll your own interface design. The conditional presses of these buttons can be bound to any button, key, or combination, just like the regular button combinations, and the modified states can be set to active or passive with the “Toggle” option.

    激活器基本上可以让您滚动自己的界面设计。 这些按钮的有条件按下可以绑定到任何按钮,键或组合,就像常规按钮组合一样,并且可以使用“切换”选项将修改后的状态设置为主动或被动。

    The Cycle Binding option allows users to fire all of the Activator functions at once or in sequence. The Hold To Repeat option allows you to set a repeat rate (or not), in what used to be called a “turbo” mode. For example, if you’ve bound the Activator to the “Fire” button in a shooter, holding it down with Hold To Repeat set to “Off” will only fire once, while setting it to “On” will pull the trigger multiple times. This is a good way to input simple, repetitive actions or combos faster than would be possible on your own.

    使用“循环绑定”选项,用户可以一次或按顺序触发所有激活器功能。 使用“保持重复”选项,可以在以前称为“涡轮”模式的情况下设置(或不设置)重复率。 例如,如果将激活器绑定到射击器中的“触发”按钮,则在“将重复播放”设置为“关”的情况下按住它只会触发一次,而将其设置为“开”则会多次触发触发器。 这是输入简单重复性动作或连击的好方法,比您自己可以输入的更快。

    The Steam Controller’s “Bumper” buttons, the left and right plastic paddles formed by the battery cover on the back of the case, are especially good for this kind of Activator button input. Binding complex operations to simple press, hold, and double-tap actions can give you many more input options in a conventional controller-operated game.

    Steam Controller的“ Bumper”按钮,由外壳背面的电池盖形成的左右塑料拨片,对于这种Activator按钮输入特别有用。 将复杂的操作绑定到简单的按下,按住和双击操作,可以在常规的控制器操作游戏中为您提供更多输入选项。

    自定义操纵杆和触摸板 (Customize the Joystick and Touchpads)

    Most of the time, if you’re playing a game designed for a standard controller, you won’t need to mess with the joystick or touchpads much—just let them use their default operations. But adjusting a mouse-based game for the joystick and touchpads can be advantageous; it’s basically what the Steam Controller is designed to do. First of all, the “Style of Input” option allows you to select from a series of joystick, mouse, or button operations for all three of these regions:

    在大多数情况下,如果您正在玩为标准控制器设计的游戏,则无需过多地操纵操纵杆或触摸板,只需让它们使用其默认操作即可。 但是,为操纵杆和触摸板调整基于鼠标的游戏可能是有利的。 这基本上就是Steam控制器的设计目的。 首先,“输入样式”选项允许您从以下三个区域的一系列操纵杆,鼠标或按钮操作中进行选择:

    • Directional Pad: the joystick or touchpad will act like an old-fashioned D-Pad, up, down, left, and right, with no analog input in between. The left touchpad, with its direction grooves, is designed specifically for this mode.

      定向板 :操纵杆或触摸板将像老式D-Pad一样向上,向下,向左和向右移动,而中间没有模拟输入。 带有方向凹槽的左触摸板是专门为此模式设计的。

    • Button Pad: the four directions will be bound to specific buttons, combos, or activators. Good for selecting through an inventory.

      按钮板 :这四个方向将绑定到特定的按钮,组合键或激活器。 适合通过库存进行选择。

    • Joystick Move: standard joystick operation. An extra button can be bound to the outer ring of the joystick, but not the touchpads.

      操纵杆移动 :标准操纵杆操作。 可以将一个额外的按钮绑定到操纵杆的外环,但不能绑定到触摸板。

    • Joystick Mouse: the joystick or touchpads control an on-screen mouse cursor with directional input only, console-style.

      操纵杆鼠标 :操纵杆或触摸板仅使用控制台方式的方向输入来控制屏幕上的鼠标光标。

    • Scroll Wheel: “rolling” the wheel clockwise or counter-clockwise will work like a mouse wheel.

      滚轮 :顺时针或逆时针“滚动”滚轮就像鼠标滚轮一样工作。

    • Mouse Region: this binds the touchpad or joystick to a specific boundary box on the screen, where it works like a mouse cursor within that limitation. Boundary boxes can be set to the whole screen (good for top-down games with map controls) or merely a portion (good for individual character controls in MOBAs).

      鼠标区域 :这会将触摸板或操纵杆绑定到屏幕上的特定边界框,在该边界框内它的作用类似于鼠标光标。 边界框可以设置为整个屏幕(适用于带有地图控件的自上而下的游戏),也可以设置为一部分(适用于MOBA中的单个角色控件)。

    • Radial Menu : similar to Button Pad, but allows players to define up to five “buttons” activated by touching or tilting in a specific direction. Good for on-the-fly activation of special actions.

      径向菜单 :类似于“按钮板”,但允许玩家定义最多五个通过在特定方向上触摸或倾斜激活的“按钮”。 快速激活特殊动作。

    Extra actions can be bound to the “click” function of each touchpad and the central joystick click (the “L3” button in console terms).

    可以将附加操作绑定到每个触摸板的“单击”功能和中央操纵杆的单击(控制台术语中的“ L3”按钮)。

    In addition, the touchpads feature the following extra operations:

    此外,触摸板还具有以下额外功能:

    • Mouse: standard mouse operation, like a touchpad on a laptop. Trackball mode lets the pads act like a “rolling” ball for the cursor rather than a static pointer.

      鼠标 :标准鼠标操作,就像笔记本电脑上的触摸板一样。 跟踪球模式可让打击垫像光标一样充当“滚动”球,而不是静态指针。

    • Joystick Camera: works like a third-person camera in a console action game.

      游戏杆摄像头 :类似于控制台动作游戏中的第三人称摄像头。

    • Touch Menu: shows an on-screen menu with multiple button actions bound to specific regions of the touchpad. This is good for group assignments in strategy games.

      触摸菜单 :显示一个屏幕菜单,其中多个按钮动作绑定到触摸板的特定区域。 这对策略游戏中的小组作业很有用。

    • Single button: the entire pad operates as a single button. Actions can be bound to simply touching the pad or also “clicking” it.

      单键 :整个打击垫可作为一个按钮操作。 动作可以绑定到简单地触摸板或“点击”它。

    You can see how things can get complex quickly—but it can be very useful.

    您可以看到事情如何Swift变得复杂,但是它可能非常有用。

    自定义触发器 (Customize the Triggers)

    The left trigger and right trigger are a bit more complicated than they seem, because these buttons combine two kinds of input: an analog “pull” action that can be soft or hard depending on how far they’re depressed, and a full “click” action at the end of the pull. Both the Full Pull and the Soft Pull settings can be manually set to any of the buttons, combos, or Activator actions outlined above.

    左触发器和右触发器比看起来要复杂一些,因为这些按钮组合了两种输入:模拟“拉”动作可以根据其按下的程度而变软或变硬,以及完整的“单击”动作结束时拉。 可以将Full Pull和Soft Pull设置手动设置为上述任何按钮,组合或激活器操作。

    The “Soft Pull Trigger Style,” “Trigger Range Start,” “Soft Pull Point,” and “Trigger Range End” settings will all help you adjust the timing and intensity of the soft trigger mode activation. They’re fairly self-explanatory, but you may need to do some in-game testing to see what setup works best for you, especially if you’re trying to perform actions outside of the usual shoot/gas/brake/modifier button defaults in most action games.

    “ Soft Pull Trigger Style”,“ Trigger Range Start”,“ Soft Pull Point”和“ Trigger Range End”设置都将帮助您调整软触发模式激活的时间和强度。 它们是不言自明的,但是您可能需要进行一些游戏内测试,以查看哪种设置最适合您,特别是如果您尝试执行常规拍摄/加油/刹车/修改器按钮默认值以外的操作时在大多数动作游戏中。

    Most games will have fairly obvious uses for the triggers: primary and secondary weapons in shooter games, gas and brake in racing games, modifiers in beat-em-ups, etc. But there’s a lot of variety to be had here—experiment and see what you can come up with.

    大多数游戏将具有非常明显的触发器用途:射击游戏中的主要和次要武器,赛车游戏中的加油和刹车,节拍游戏中的修饰符等。但是这里有很多变化-实验和观察你能想到什么。

    使用模式切换创建多个布局 (Create Multiple Layouts with Mode Shifting)

    For the left and right triggers, the main left and right touchpads, the thumbstick, and the A/B/X/Y buttons, there’s an extra option that isn’t available to the other buttons on the controller: Mode Shifting. The Mode Shift function is something that’s assigned to a separate button that can change the layout and functions of the rest of the controller.

    对于左右触发器,左右主触摸板,指点杆和A / B / X / Y按钮,还有一个额外的选项对控制器上的其他按钮不可用:模式转换。 模式切换功能是分配给单独按钮的功能,可以更改控制器其余部分的布局和功能。

    So, say you’re playing a game that uses a first-person shooter setup with flyable vehicles, like Battlefield, and you want standard north and south look controls while on foot but you want inverted joystick-style controls while flying a plane. Go into the Joystick menu, set it up for standard input in the main screen, then click “Mode Shifting.” Here you can assign a modified input style to the Joystick Move function, activated with a set Mode Shift button—again, the rear bumper buttons are ideal for this kind of operation. In the new menu for the Mode Shift operation, click “Additional Settings” and set the Invert Vertical Axis option to “On.” Now, when you press the Mode Shift button you assigned (ideally as you enter a plane), the Y axis on the joystick will invert, and you can press the Mode Shift button again when you return to on-foot controls.

    因此,假设您正在玩一个使用第一人称射击游戏和可飞行飞行器(例如《 战地风云》)的游戏 ,并且想要在步行时使用标准的南北外观控件,但在飞行时需要反转的操纵杆式控件。 进入操纵杆菜单,在主屏幕中将其设置为标准输入,然后单击“模式转换”。 在这里,您可以为“操纵杆移动”功能分配修改后的输入样式,并通过设置的“模式转换”按钮激活-同样,后保险杠按钮非常适合此类操作。 在“模式转换”操作的新菜单中,单击“其他设置”,然后将“反转垂直轴”选项设置为“开”。 现在,当您按分配的“模式转换”按钮时(理想情况下,当您输入飞机时),操纵杆上的Y轴将反转,并且当您返回步行控制时,可以再次按“模式转换”按钮。

    Mode Shifting allows for many, many more combinations of inputs, so long as you have enough buttons available to assign them.

    只要您有足够的按钮来分配它们,“模式转换”就可以实现许多更多的输入组合。

    保存并浏览您的配置 (Save and Browse Your Configurations)

    To save your controller settings for this game (and only this game), return to the main configuration screen and click “Export Config.” Click “Save new personal binding” to create a new profile on your Steam account, accessible from any computer with Steam installed. “Save new local-only binding file” will save it to the current machine only, with no online backup. This menu allows players to shift configurations between their games without having to set up each option again.

    要保存此游戏(仅此游戏)的控制器设置,请返回主配置屏幕,然后单击“导出配置”。 单击“保存新的个人绑定”以在您的Steam帐户上创建新的配置文件,可从安装了Steam的任何计算机上访问。 “保存新的仅本地绑定文件”将仅将其保存到当前计算机,而没有联机备份。 该菜单允许玩家在游戏之间切换配置,而无需再次设置每个选项。

    Now go back to the main configuration screen and click “Browse Configs.” Here you’ll see Steam’s recommended controller type for this game (it defaults to Xbox-style controls if the game supports them). But what’s really interesting is the “Community” page. Here you’ll see controller configurations uploaded by other Steam users. For popular games, there might be hundreds of option to choose from.

    现在返回主配置屏幕,然后单击“浏览配置”。 在这里,您会看到Steam推荐用于此游戏的控制器类型(如果游戏支持,则默认为Xbox风格的控件)。 但是真正有趣的是“社区”页面。 在这里,您将看到其他Steam用户上传的控制器配置。 对于流行游戏,可能有数百种选择。

    Each configuration includes the Steam name of the player who created it, the total playtime of all players on Steam who use it, and the total number of upvotes it receives when players try the layout and like it. This is a great way to check out some of the Steam Controller settings made by others—who perhaps are more experienced with the advanced features than you are—and further customize it to your liking after you’ve tried it out.

    每个配置都包括创建它的玩家的Steam名称,使用它的Steam上所有玩家的总播放时间,以及当玩家尝试该布局并喜欢该布局时收到的投票总数。 这是检查其他人(可能比您更具有高级功能的人)进行某些Steam Controller设置的好方法,并在尝试后根据自己的喜好对其进行自定义。

    翻译自: https://www.howtogeek.com/301108/how-to-set-up-and-customize-the-steam-controller/

    steam自定义信息框

    展开全文
  • 小菜鸟一枚,搜了很久没找到信息,大神们求指导 我想要在IP 头部option中添加自定义信息,主要用于过滤请求,该怎么做?
  • h264增加SEI段信息添加自定义信息

    千次阅读 2018-02-09 16:26:57
    FFmpeg代码导读系列(二)----SEI的那些事h264增加SEI段信息添加自定义信息http://blog.csdn.net/ab7936573/article/details/74135909

    FFmpeg代码导读系列(二)----SEI的那些事

    h264增加SEI段信息添加自定义信息

    http://blog.csdn.net/ab7936573/article/details/74135909


    展开全文
  • @Springboot+Security用户无权限返回自定义信息 返回信息分为跳转自定义页面和字符串提醒 返回信息分为跳转自定义页面和字符串提醒,这里我将都介绍并将自己遇到的问题做出解释 返回自定义界面提示 只需要修改启动类...

    @Springboot+Security用户无权限返回自定义信息

    返回信息分为跳转自定义页面和字符串提醒

    返回信息分为跳转自定义页面和字符串提醒,这里我将都介绍并将自己遇到的问题做出解释

    返回自定义界面提示

    1. 只需要修改启动类

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
    import org.springframework.boot.web.servlet.ErrorPage;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.ComponentScan;
    import org.springframework.http.HttpStatus;
    import org.springframework.security.core.userdetails.UserDetailsService;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

    import com.example.App.security.UserService;

    @SpringBootApplication
    @ComponentScan(basePackages =“com.example.App”)
    @EnableAutoConfiguration
    public class LoginApplication extends WebMvcConfigurerAdapter {

    public static void main(String[] args) {
    	// TODO Auto-generated method stub
    	SpringApplication.run(LoginApplication.class, args);
    }
    
     @Bean
        public UserDetailsService userDetailsService() {
            return new UserService();
        }
        /**
         * 自定义异常页
         */
     @Bean
     public EmbeddedServletContainerCustomizer containerCustomizer() {
    
        return (container -> {
             //可以定义多个自定义页面
             //注意:如果使用thymeleaf错误页面默认src/main/resources/templates/error路径下
             //否则在main/resources/static路径下
             //具体关于页面路径问题请详细阅读https://blog.csdn.net/w995223851/article/details/88350054
             ErrorPage error403Page = new ErrorPage(HttpStatus.UNAUTHORIZED, "/403.html");
             ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/404.html");
             //参数可变
             container.addErrorPages(error403Page,error404Page);
        });
     }
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
        }
    

    }

    返回自定义消息提示

    1. 新建MyAccessDeniedHandler类实现AccessDeniedHandler接口

    import java.io.IOException;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;

    import org.springframework.security.access.AccessDeniedException;
    import org.springframework.security.web.access.AccessDeniedHandler;
    import org.springframework.stereotype.Component;

    /*

    • 无权限用户提示设置
      */
      @Component
      public class MyAccessDeniedHandler implements AccessDeniedHandler {

      @Override
      public void handle(HttpServletRequest request, HttpServletResponse response,AccessDeniedException accessDeniedException) throws IOException, ServletException {

       //返回json形式的错误信息        
       response.setCharacterEncoding("UTF-8");
       response.setContentType("application/json");
       response.getWriter().println("我愚蠢的弟弟啊 ! 你跑错厕所了 ! ");
       response.getWriter().flush();
      

      }

    }

    2.在 继承了WebSecurityConfigurerAdapter 的WebSecurityConfig类中添加和修改

    添加
    @Bean
    public AccessDeniedHandler getAccessDeniedHandler() {
    return new MyAccessDeniedHandler();
    }
    修改 configure(HttpSecurity http)方法
    http
    .authorizeRequests()
    .anyRequest().authenticated()
    .and()
    //无权限用户提示字符串消息设置
    .exceptionHandling()
    // getAccessDeniedHandler()是上文的方法
    .accessDeniedHandler(getAccessDeniedHandler())
    //and()是连接不同配置的
    .and()

    展开全文
  • h264解码之自定义信息(SEI)

    万次阅读 2018-07-06 17:57:12
    针对h264的解析网上优秀得博文、帖子一抓一大把,我就不在这班门弄斧了,仅仅提取一些自己在用的过程中比较有用的信息,对于sei自定义信息字段,虽然网上信息很多,但不容易精确搜到,就像我之前曾遇到一篇对我个人...
  • 插件默认只支持一个字段的自定义信息,即custom_string_obkoro1字段,无法多出字段。 通过修改插件,可增加自定义字段 打开显示隐藏文件 在C:\用户名.vscode\extensions\obkoro1.korofileheader-4.7.2(我用的是...
  • axios在header请求头加入自定义信息 _this.$axios.post("/api/noticeInfo/notReadNum",data,{ headers:{ 'userid':sessionStorage.getItem("userId") } }) .then(function (res){ console.log("未读消息为:",res...
  • 前端高德地图Vue+Marker+自定义信息多窗体开发心得 首先呢 我们的项目是一个大屏项目 需要用到高德地图api中的Marker和自定义信息窗体用来展示在对应经纬度的内容和自定义maker图标 因为百度上的东西实在太杂了 所以...
  • 天地图3.0 web api JavaScript 标注 用户自定义信息窗口 很多使用天地图WEB API的朋友都会问为什么循环添加的标注点,注册点击事件总是响应最后添加的marker?这里介绍一个如何循环添加标注点,并且正确响应,还有...
  • 前段时间写了一个关于百度地图API的应用(关键字搜索、获取经纬度)的博客,基于此和一位朋友的帮助,写了一个可以在地图上跳动并的显示自定义信息的功能。效果图:在地图上显示红色标注,并上下跳动 鼠标点击会...
  •  // 复杂的自定义覆盖物  //参数 point 坐标 , backImg 图片,oneparameter 周边设备数,twoparameter 上网人数 ,threeparameter 车牌号 ,fourparameter 设备MAC,fiveparameter 时间  function ...
  • 百度地图自定义信息窗口

    千次阅读 2020-01-16 15:56:57
    title: '<h3 style="float: left">'+json.title+'</h3>', // 信息窗口标题 enableMessage: true, //设置允许信息窗发送短息 message: "" } var ...
  • 上一篇我们显示的是固定信息,这里说一下,显示自定义信息
  • security默认的做认证处理的过滤...这个消息就是登陆失败后的信息 上面的图我认为画的有点不对,通过 debugger 看出, additionalAuthenticationChecks 方法应该是调用的 DaoAuthenticationProvider 里面的,而不是 ...
  • 最近项目需要用log4net来写日志,因为整个平台式在sharepoint上,我们需要记录具体是哪个子站点发生的日志,因此需要再原来的log表里面添加一个自定义信息列。由于平台的安全性要求,我们需要对连接字符串加密。连接...
  • 先说下业务场景,在数据库查出相应的项目展示出来,然后点击项目在百度地图上标注项目的地址,同时弹出窗口显示相关的信息。下面就来看看具体的实现: 1.引入百度地图相关的API,我这里选的是web的JavaScript API。...
  • 前面几篇文章都说的是在java环境下制作webservice碰到的问题,现在再来说一下在.net平台下如何获取soapheader中的自定义信息。 首先我们先看一下客户端发起请求的soap,其中header部分的CertificationProxy节点为...
  • //TODO 一定要注意顺序,先执行 自定义 enhancer 添加信息 然后尽心加密生成token list.add(jwtTokenEnhancer); list.add(jwtAccessTokenConverter); chain.setTokenEnhancers(list); endpoints.tokenEnhancer...
  • 百度 js api中存在infoWindow的类,就是marker 点击后显示的信息窗口,他存在一下问题1....通过寻找信息窗口里的例子,发现在1.5版本的时候,提供过一个自定窗口的例子和相关的js文件该例子位于百度地图开...
  • Android高德地图自定义信息

    千次阅读 2017-06-01 15:03:48
    思路:官方提供的信息窗infoWindow只包含了title与snippet,皆为文本信息,而我们还需要显示图片信息,所以,这里要用到自定义infoWindow,高德地图为我们提供一些接口,我们直接使用即可:  aMap....
  • 百度地图可以实现自定义窗口样式,教程稀缺,自己做了一个但是最后没采取删了 哈哈, http://lbsyun.baidu.com/cms/jsapi/reference/jsapi_reference.html#a3b9 这是百度地图API类文件,那个自定义样式 这个里面是...
  • 全选全不选:data-actions-box="true"限制:data-max-options="5" 自定义:data-max-options-text="最多可选择五个文档库!"
  • 百度地图 Api v3.0 自定义信息窗体样式

    千次阅读 热门讨论 2020-05-10 11:15:56
    一、最终效果图 二、代码 var map = new BMap.Map("mapContainer"); var point = new BMap.Point(116.404, 39.915); map.centerAndZoom(point, 15); // map.enableScrollWheelZoom(true);...// map.set...
  • 在百度地图上实现鼠标滑过marker时打开自定义信息窗口,当鼠标滑出marker时关闭已打开的信息窗口。  首先,需要在地图上添加一个marker,具体如下所示: $.ajax({ async:false, cache:true, url: "获取...
  • android 自定义信息提示框

    千次阅读 2013-09-04 20:27:17
    , "自定义风格的Toast信息提示框",  Toast. LENGTH_LONG );  myToast.setGravity(Gravity. CENTER , 60, 30);  LinearLayout myToastView = (LinearLayout)myToast.getView(); //线性布局  ...
  • Sleuth+logback 设置traceid 及自定义信息

    千次阅读 2019-04-30 10:31:57
    背景:分布式系统中,如何快速定位某个用户的请求日志? 使用Sleuth生成的traceid可以跟踪某个请求,但是很多时候我们需要知道traceid 与某个用户的映射关系,方便定位某个用户的日志 方案: ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 44,381
精华内容 17,752
关键字:

自定义信息