小编Eda*_*aor的帖子

如何提前停止处理JSP?

我有一个JSP页面,它调用一个函数并检查它的返回值.如果返回值不为null,则JSP页面继续使用它.如果返回值为空,我希望JSP页面的处理停止(这是因为该函数将在返回null对象之前执行重定向.此外,JSP代码的其余部分显然使用此对象,并且将获得如果函数返回null,则为null指针异常.

所以我的问题是,停止加载JSP页面的正确方法是什么?我可以这样做:

if (Func() == null) { return; }
Run Code Online (Sandbox Code Playgroud)

或者在JSP中间使用返回而不是更清洁的方式来解决这个问题?

谢谢

java jsp

5
推荐指数
2
解决办法
8641
查看次数

在Windows上使用Boost(Visual Studio)

我想开始使用Boost.我正在Visual Studio中编写一个C++程序(显然是在Windows机器上).

Boost的入门指南说:

获取Boost副本的最简单方法是使用安装程序.本入门指南的Boost网站版本将提供有关安装程序可用日期的未注明日期信息,或参阅Boost下载或BoostPro Computing提供的安装程序.如果您使用Microsoft Visual Studio,我们特别建议使用安装程序,因为安装程序可以下载并安装预编译的库二进制文件,从而避免了自行构建它们的麻烦.

我不确定是否要遵循这个建议,或者只是自己下载并构建所有内容.我在安装程序中看到的潜在问题是:

  1. 事情不再是自包含的(即每个团队成员必须安装Boost,然后配置Visual Studio来识别它).
  2. 我无法将Boost保持在源代码控制之下(理想情况下,我希望将其作为源代码控制中的源文件,就像其他所有内容一样).(编辑:从评论来看,它看起来像有点大(如5 GB!),所以很明显我只需要保留部分源代码控制).

所以我的问题是,我只是偏执,应该去安装路线,还是我是正确的,应该自己建造?如果有任何人有使用Boost和Visual Studio的经验,我会很感激他们是否可以分享他们对此的看法(如果应该自己构建它,任何提示也会受到赞赏,例如我应该只复制每个文件我实际上用的是什么?等等.

注意:

关于StackOverflow的一些类似的问题,但没有明确地问这个问题,让我觉得我不应该使用安装程序,这就是为什么我在这里明确要求它.作为参考,这些是问题:

  1. 提升链接,Visual Studio和版本控制
  2. 使用C++源包含相关的Boost库(使用Visual Studio)

c++ windows boost visual-studio visual-c++

5
推荐指数
1
解决办法
4783
查看次数

VIM + Python - "gd"命令无法正常工作

我开始使用VIM编写Python程序.我遇到了一些问题,希望有人可以帮我解决这个问题.

"gd"命令应该将您带到第一个在当前函数中定义/使用变量的位置.根据我的理解,它与"[["转到函数顶部,然后执行搜索变量名称相同.

问题是,当我在Python函数中尝试这个时,vim会在整个文件中找到第一个变量.

有关为什么会发生这种情况的想法/如何解决这个问题?

python ide vim editor

5
推荐指数
1
解决办法
1243
查看次数

如何为vim创建“新模式”(即循环并获取用户输入,然后执行相关的操作)

我正在尝试在vim中创建一种“新模式”。模式的细节并不重要,但是我需要做一件事。

我需要执行以下伪代码:

get user input (movement keys like "j" or complex keys like "dd")
while user_input != <esc>
   execute the user input
endwhile
Run Code Online (Sandbox Code Playgroud)

换句话说,我需要一个循环,该循环将读取用户的操作,然后执行相关的操作。

我已经有以下代码:

let char = nr2char(getchar())
while char =~ '^\w$'
    execute "normal ". char
    let char = nr2char(getchar())
endwhile
Run Code Online (Sandbox Code Playgroud)

这对于用户移动(jk等)工作正常,但对于更复杂的多字符命令(如)无效dd

另外,这是一个小麻烦,但是光标在getchar()期间消失了,这意味着您实际上看不到光标(由于我想做的事情,它的重要性不那么重要,但希望也能找到解决方案) 。

有谁知道我如何使多字符动作起作用?

vim editor

5
推荐指数
1
解决办法
1617
查看次数

Vimscript - 以编程方式从colorscheme获取颜色

我正在尝试在Vimscript中创建一个autocmd,它根据我的需要设置了colorscheme的一些属性.具体来说,我正在尝试使NonText背景与常规背景颜色相同.

问题是,我不知道如何从vimscript中获取colorscheme的背景颜色.

有人有主意吗?

编辑:

所以这就是我想要实现的目标.实际上有几件事:

  1. 最初,我试图隐藏在所有不存在的线前面的"〜".有人建议将它设置为与背景相同的颜色,所以我添加了一个执行此操作的autocmd : hi NonText guifg=bg.

  2. 在这之后,我意识到一些colorschems对于常规线和缓冲区的"不存在"部分具有不同的背景颜色.这是一个问题,因为我的autocmd将NonText颜色设置为与常规背景相同,而不是特殊的"不存在"背景.

    此外,我决定,即使没有整个"摆脱~"问题,当缓冲区的不存在部分是不同的颜色时,我不喜欢它.

最后,我试图了解一般的vim colorschemes,因为我打算编写一个插件,需要一些其他技巧,比如从方案中找出颜色.

vim editor

5
推荐指数
1
解决办法
1235
查看次数

在REST Api中建模对象继承

问题

我有一个具有User对象和Student对象的应用程序.有些用户是学生.所有学生都是用户.在数据库(基于django-ORM)中,这表示为具有Student表的外键的User表.

我正在尝试在iOS应用程序中创建一个REST API和一个对象层次结构来模拟这个API.我无法决定如何建模.

当前的解决方案

我提出的最好的是:User在iOS中有一个模型,在iOS中有一个Student模型,它继承User并扩展了更多的属性.然后,具有从该服务器接收的JSON响应,并创建一个方法或者一个User或一个Student模型,这取决于dictinoary.

最后,服务器需要始终为我提供最具体的类型.即,当我登录服务器时,它将决定我是学生还是普通用户,并将返回正确的字典.

这是最好的方法吗?

这听起来有点复杂.但是我想到的任何其他方式建模它,例如改变数据库的布局方式,给了我一种设计,其中数据库不知道所有的约束.例如,Student允许对象拥有其他对象(例如,homework_paper).我可以用User对象的外键而不是对象来建模Student,并说它Student只是用户的扩展.但是,数据库并没有强迫a homework_paper必须由学生拥有.

有没有更好的方法来解决我错过的这个问题?

oop api django rest objective-c

5
推荐指数
1
解决办法
3155
查看次数

Vim - 使用正则表达式按字典顺序比较字符串(查找更早/更晚的日期)

我想在vim中编写一个简单的正则表达式,它会发现所有字符串在字典上都比另一个字符串.

具体来说,我想用它来比较格式为2014-02-17的日期.这些日期是按字典顺序排序的,这就是我使用它们的原因.

我的具体用例:我正在尝试运行一个脚本,找到比今天更早的所有日期.

我也可以将这些作为数字或任何其他解决方案进行比较.

regex vim

5
推荐指数
1
解决办法
523
查看次数

连接到svn时遇到问题(400:错误请求)

简介: 我遇到了一些svn问题,经过"调试"一段时间之后,我不知道从哪里开始.我认为其他人之前可能遇到过这个问题.问题似乎是我在ISP使用的透明代理背后,但这并不能解释所有事实.

详细信息: 我无法将计算机连接到我自己的域中的svn存储库,该存储库位于DreamHost上.我正在使用tortoise-svn的repo浏览器进行连接,但在执行任何操作(添加文件夹,扩展源树...)后,我收到"400:错误的请求消息".

DreamHost和svn faq都说问题可能是我支持我的ISP设置的某种代理,而我没有任何控制权.问题是,我有另一个工作正常的回购.这让我有点不确定那真的是问题,因为我认为代理会停止每个 svn连接.

另一方面,我的朋友设法使用不同的ISP连接正常.

我很感激为什么会发生这种情况(只有一个回购而不是另一个回购),以及我可以从这里开始的地方.

在此先感谢您的帮助.

[编辑1]:我也尝试连接到端口81而不是80,DreamHost svn服务器似乎不接受(我得到"无法连接到服务器"错误).

[编辑2]:根据svn faq,有人建议使用https进行连接.这可能会有效,但是,我的DreamHost帐户现在没有ssl,添加它会花费我每月额外的费用.如果我没有其他选择,我可能会这样做,但如果可以的话,我宁愿找到一个不同的解决方案来降低成本.

PS我不确定是在这里发布还是在ServerFault发布,因为它是一个svn问题,我认为最容易遇到这个问题的人是程序员.

PPS如果它可以帮助任何人,我使用WireShark嗅探从我的计算机到主机的流量,最后发送的消息(来自我的机器)是这样的:

REPORT /**** HTTP/1.1
Host: svn.***.com
User-Agent: SVN/1.6.5 (r38866)/TortoiseSVN-1.6.5.16974 neon/0.28.6
Connection: TE
TE: trailers
Content-Type: text/xml
Accept-Encoding: gzip
DAV: http://subversion.tigris.org/xmlns/dav/svn/depth
DAV: http://subversion.tigris.org/xmlns/dav/svn/mergeinfo
DAV: http://subversion.tigris.org/xmlns/dav/svn/log-revprops
Content-Length: 109
Accept-Encoding: gzip
Authorization: Basic ***=

<?xml version="1.0" encoding="utf-8"?><S:get-locks-report xmlns:S="svn:" xmlns:D="DAV:"></S:get-locks-report>
Run Code Online (Sandbox Code Playgroud)

svn tortoisesvn dreamhost

4
推荐指数
1
解决办法
1万
查看次数

如何在JSP中实现登录系统

一个非常基本的JSP问题,因为我仍然试图理解正确的做事方式.

我正在开发一个Web应用程序,要求用户在工作之前登录.我想要发生的是,只要没有登录的用户试图访问任何页面(登录页面除外),用户就会被重定向到我的登录页面.

我选择的方法只是在每个页面的顶部有一些代码,试图从会话中获取用户对象,如果它不存在,重定向到登录(我有一个User对象)存储在会话中的用户存在,其中包含其他详细信息,如权限).

这是进行身份验证的正确方法吗?还是有更多标准方法我应该研究?

编辑:我决定将这个问题分成两个问题,因为一个问题更多是一个最佳实践问题而另一个问题纯粹是技术问题.谢谢你的回复.

java redirect jsp login

2
推荐指数
1
解决办法
2548
查看次数

部分应用列表理解

我开始学习Haskell,事实证明,在那里,你可以使列表理解成为部分应用的函数.换句话说,它返回一个接受列表的函数,然后在列表上运行列表推导.

例:

boomBangs xs = [ if x < 10 then "BOOM!" else "BANG!" | x <- xs, odd x]

boomBangs can then be called with the actual "xs" argument.
Run Code Online (Sandbox Code Playgroud)

我的问题:在Python中有没有办法做到这一点?我四处寻找并找不到办法,但我可能会遗漏一些东西.

这对于能够做到这一点非常有价值.

编辑:

我的意思似乎有些混乱.

我希望能够定义列表理解,而不必将列表提供给以后工作.

这个想法将是列表理解有效地变成一个接受一个参数的函数,即要处理的列表.

我可以这样做:

my_new_func = [x*2 for x in l] # l is **not defined**
Run Code Online (Sandbox Code Playgroud)

然后在代码中的某个地方:

my_new_func(range(10)) # Returns the answer
Run Code Online (Sandbox Code Playgroud)

这是一种非常好的函数式编程方式.

第二编辑:

这是一种做我想要的方法,但我想知道是否有更好的方法:

boomBangs = lambda lst: [actual list comprehension]

boomBangs(range(10))
Run Code Online (Sandbox Code Playgroud)

python haskell functional-programming list-comprehension

1
推荐指数
1
解决办法
281
查看次数