我有一个Struts2(2.1.8.1)Web应用程序.我的web.xml看起来像,
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Run Code Online (Sandbox Code Playgroud)
这配置为将所有请求映射到struts过滤器.我想在我的Web应用程序中添加一个servlet.我想将具有特定url模式的所有请求发送到该servlet.我希望其他所有东西都能进入我的struts servlet.
我知道我只能将"*.action"映射到struts servlet,但我讨厌.action就在我所有URL的末尾.
从我正在处理的iPad应用程序中查看以下屏幕截图片段:

左侧的"聊天气泡"图标来自着名的Glyphish图标集.请注意它是如何具有正确的垂直定位(在中间),但比用于InfoDark按钮的灰度更暗.制作此图标的代码如下:
UIImage* image = [UIImage imageNamed:@"02-chat.png"];
CGRect frame = CGRectMake(0, 0, image.size.width, image.size.height);
UIButton* button = [[UIButton alloc] initWithFrame:frame];
[button setBackgroundImage:image forState:UIControlStateNormal];
[button addTarget:nil action:NULL forControlEvents:UIControlEventTouchUpInside];
[button setShowsTouchWhenHighlighted:YES];
UIBarButtonItem* chatBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];
Run Code Online (Sandbox Code Playgroud)
中间的"聊天气泡"图标使用相同的图像,使用不同的代码创建.注意它是如何具有正确的着色/透明度,但具有不正确的垂直定位(太高):
UIImage* image = [UIImage imageNamed:@"02-chat.png"];
UIBarButtonItem* chatBarButtonItem = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:nil action:NULL];
Run Code Online (Sandbox Code Playgroud)
如何获得UIBarButtonItem具有正确着色/透明度的按钮(因此我不必手动操作),以及正确的垂直定位?
一个或另一个是错误,无论是在我的代码中,还是在Apple的?或两者?或两者都没有(即它是"按设计")?
编辑:回答答案
看起来第一个版本使用图像作为蒙版,而不是常规图像.
它看起来像,但事实并非如此.如果我用带有Photoshop的朋友用手轻拍的图像替换图像并使用a UIButton,则定位和着色是正确的.我只是试图找到那个手动步骤.
请记住,将UIResponder对象(例如UIButton)放在UIBarButtonItem中会产生不可预测的结果,我发现最好避免它.
你有资源吗?(特别是Apple链接?)从未听说过.
重新设计图像是您自己的.这是确保所有工具栏图标的正确尺寸,渐变和位置的最佳和唯一方法.
我不一定反对.但是,这是我想要消除的手动步骤.应该可以在不需要编辑的情况下获得我想要的行为.(特别是因为我使用现有的框架得到了所需行为的两半.只是不同时)
最适合工具栏的是25x25和50x50 @ 2x.有时您可能需要低至23.
这是苹果官方的官方消息吗?也许来自HIG?你能提供消息来源吗?
您可以尝试在其上设置imageInsets以将其向下推.
这也是一个不必要的手动过程.最糟糕的是,需要对每个图像进行手动调整,如果图像以任何方式发生变化,则必须进行双重检查.方式太多了.我想将其设置为图像,让底层框架解决如何使图像居中的问题.
如何搜索所有元素与我正在寻找的元素完全匹配的列表.例如,我想验证以下列表是否包含'a','b'和'c',以及更多或更少.
lst=['a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
我这样做了:
if 'a' in lst and 'b' in lst and 'c' in lst:
#do something
Run Code Online (Sandbox Code Playgroud)
提前谢谢了.
我正在开发一个静态库,将其分发给可能需要调试语句的其他开发人员.所以我有几个级别的日志记录.
为了避免不断出现
if(loggingLevelCurrentlySet >= loggingLevelWantedForThisInstance){
NSLog(@"log this");
}
Run Code Online (Sandbox Code Playgroud)
我创建了一组日志功能包装器.简化版本如下所示:
void myLog(int logLevel, NSString *format, va_list args){
if((loggingLevelCurrentlySet >= logLevel)){
NSLogv(format, args);
}
}
void myLogLevel1(NSString *format, ...){
va_list args;
va_start(args, format);
myLog(1, format, args);
va_end(args);
}
void myLogLevel2(NSString *format, ...){
va_list args;
va_start(args, format);
myLog(2, format, args);
va_end(args);
}
Run Code Online (Sandbox Code Playgroud)
等等
但是现在,我希望从myLog中访问完全格式化的字符串以执行其他操作.
void myLog(int logLevel, NSString *format, va_list args){
NSString *fullString = [NSString stringWithFormat:format, args]; //crashes when args is anything but an empty list
CFStringRef cfsr = CFStringCreateWithFormat(kCFAllocatorDefault, NULL, format, args); …Run Code Online (Sandbox Code Playgroud) 我已经写在记事本中一些相当长的SQL查询,然后将其粘贴到我的VBA代码,是再正确格式化多行字符串在每个时间线.例如...
在我的文本编辑器中,查询看起来像这样.
SELECT
a,
b,
c,
...,
n
FROM
table1,
table2,
...,
tableN
WHERE
etc
Run Code Online (Sandbox Code Playgroud)
然后粘贴到这个VBA编辑器和手动添加sqlStr = sqlStr&"...."到每一行.
sqlStr = " SELECT "
sqlStr = sqlStr & " a,"
sqlStr = sqlStr & " b,"
sqlStr = sqlStr & " c,"
sqlStr = sqlStr & " ...,"
sqlStr = sqlStr & " n"
sqlStr = sqlStr & " FROM"
sqlStr = sqlStr & " table1,"
sqlStr = sqlStr & " table2,"
sqlStr = sqlStr & " ...,"
sqlStr …Run Code Online (Sandbox Code Playgroud) 它看起来WFP DataGridComboBoxColumn正在为此列中的所有单元格使用单个ItemsSource.我有一个案例,其中ComboBox项依赖于同一行中的另一个单元格.我设法在PreparingCellForEdit事件中填充ItemsSource.但是,它不能按预期工作.最初,此列中的所有单元格都是空的.一旦我为这个列的ComboBox填充ItemsSource,所有相关的单元格(具有相同的项目源)都显示值.但是,如果我单击其他类型的单元格(填充了不同的项目源),则所有值都将消失,新类型单元格将显示值.您只能为列使用一组Items Source?我不敢相信这是真的.我错过了什么吗?任何解决方法?
我需要得到任何单位(命名空间)的名称TRttiType.
到目前为止,我已尝试过以下内容.
1)使用PTypeData.UnitName,这个解决方案有效,但只有当TTypeKind是tkClass时.
procedure ListAllUnits;
var
ctx : TRttiContext;
lType: TRttiType;
Units: TStrings;
begin
Units:=TStringList.Create;
try
ctx := TRttiContext.Create;
for lType in ctx.GetTypes do
if lType.IsInstance then //only works for classes
if Units.IndexOf(UTF8ToString(GetTypeData(lType.Handle).UnitName))<0 then
Units.Add(UTF8ToString(GetTypeData(lType.Handle).UnitName));
Writeln(Units.Text);
finally
Units.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
2)解析QualifiedName属性,这个解决方案到目前为止工作正常,但我对此并不满意.
procedure ListAllUnits2;
function GetUnitName(lType: TRttiType): string;
begin
Result := StringReplace(lType.QualifiedName, '.' + lType.Name, '',[rfReplaceAll])
end;
var
ctx: TRttiContext;
lType: TRttiType;
Units: TStrings;
begin
Units := TStringList.Create;
try
ctx := TRttiContext.Create;
for lType in …Run Code Online (Sandbox Code Playgroud) 什么是判断javascript中的值是否为单个数字的最佳方式.我一直在做类似的事情
var valAsString = '' + val;
if (valAsString.match(/\d/) {}
Run Code Online (Sandbox Code Playgroud)
澄清:我的意思是0,1,2,3,4,5,6,7,8,9之一
还有,我应该做什么工作?我很惊讶人们为此想出了多少不同的方式.
button ×1
c ×1
cocoa-touch ×1
combobox ×1
css ×1
datagrid ×1
delphi ×1
delphi-xe ×1
digits ×1
excel ×1
excel-vba ×1
html ×1
image ×1
ios ×1
ipad ×1
iphone ×1
itemssource ×1
java ×1
javascript ×1
nsstring ×1
objective-c ×1
python ×1
regex ×1
rtti ×1
sql ×1
string ×1
struts2 ×1
toolbar ×1
vba ×1
wpf ×1