我正在使用angularjs编写一个简单的登录表单,其中包含一些客户端输入验证,以检查用户名和密码是否为空且超过三个字符.请参阅以下代码:
<form name="loginform" novalidate ng-submit="login.submit()" class="css-form">
<fieldset>
<div class="control-group input-prepend">
<span class="add-on"><i class="icon-user"></i></span>
<input type="text" ng-model="login.username" name="username" required ng-minlength="3" placeholder="username" />
</div>
<div class="control-group input-prepend">
<span class="add-on"><i class="icon-lock"></i></span>
<input type="password" ng-model="login.password" name="password" required ng-minlength="3" placeholder="" />
</div>
<div class="control-group">
<input class="btn" type="submit" value="Log in">
</div>
</fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)
和控制器:
var controller = function($scope) {
$scope.login = {
submit: function() {
Console.info($scope.login.username + ' ' + $scope.login.password);
}
}
};
Run Code Online (Sandbox Code Playgroud)
问题是login.submit
即使输入无效,也会调用该函数.是否有可能阻止这种行为?
作为旁注,我可以提一下,我也使用bootstrap和requirejs.
我一直在谷歌搜索我试图找到与我有同样问题的人,没有运气.所以这是我的问题:
我正在尝试实现地址的自动完成建议,因为用户在Android中使用地理编码器键入地点的名称.我希望它的行为与使用combbox的javascript版本大致相同.
我正在使用带有AutoCompleteTextView的布局,以及一个arrayadapter,可以在用户输入时动态更新建议列表.我在收到onTextChanged()事件之后添加了500ms的延迟,然后使用Handler调用geocoder.getFromLocationName.如果用户在500毫秒内输入更多字母,则最后一个事件将被取消.我遇到的问题是,这些建议几乎从未在UI中显示为下拉列表中的可选项.我得到了地址建议,但当我将它们添加到附加到autocomplatetextview的适配器时,它们很简单.
我在使用API级别7的模拟器上运行此功能,包括谷歌api.
现在有一些源代码可以帮助你:布局:
<LinearLayout android:id="@+id/searchInputLayout"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="6dip"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/searchMessage" />
<EditText android:id="@+id/freetextInput"
android:hint="@string/searchFreetextLabel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@android:drawable/editbox_background" />
<CheckBox android:id="@+id/includeVincinityCheckbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/includeVincinityLabel"
android:checked="true"
android:onClick="includeVincinityClick" />
<AutoCompleteTextView android:id="@+id/locationInput"
android:hint="@string/locationInputHint"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Button android:id="@+id/searchButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/searchBtnLabel"
android:onClick="searchBtnClicked" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的活动的源代码(我省略了不相关的代码):
public class SearchLocationTabActivity extends Activity implements TextWatcher, OnItemSelectedListener {
private static final int MESSAGE_TEXT_CHANGED = 0;
private static final int AUTOCOMPLETE_DELAY = 500;
private static final int THRESHOLD = 3;
private String latitude, longitude; …
Run Code Online (Sandbox Code Playgroud) 我有一个jax-rs服务,它接收路径中的一组参数pathparameters.这些参数可能是包含不适合url的值的字符串,因此它们在客户端使用java.net.UrlEncoder进行urlencoded,如下所示:
String param = URLEncoder.encode(o.toString(), "UTF-8");
Run Code Online (Sandbox Code Playgroud)
这用于构建URL supplier/group/param1/param2/param3
.如果其中一个因urlencoding而被更改,例如,如果它只是一个空格,则在服务上接收的字符串是一个+
符号.
@GET
@Path("{supplierId}/{groupCode}/{groupId}")
@Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public SupplierGroup getSupplierGroup(@PathParam("supplierId") BigDecimal supplierId,
@PathParam("groupCode") String groupCode,
@PathParam("groupId") BigDecimal groupId) {
//now groupCode is "+", not " "
}
Run Code Online (Sandbox Code Playgroud)
我希望jaxrs能够自动解码编码路径参数.
编辑:测试更多我发现,当发送使用%20
空间时,它能够解码参数.
我正在尝试进行查询,我想检查用户的电子邮件或名称是否以给定字符串开头.在sql查询中我会用这个写
name like 'queryString%' or email like 'queryString%'
Run Code Online (Sandbox Code Playgroud)
在ebean查询中,我希望写一些类似于:
find.where().or(like('name', 'queryString%'), like('email', 'queryString%'));
Run Code Online (Sandbox Code Playgroud)
问题是,或者接受表达式,而不是表达式列表,这是我在写作时得到的
find.where().like(...,...)
Run Code Online (Sandbox Code Playgroud)
据我所知,它做了这样的查询:
find.where().like(.., ...).like(..., ...)
Run Code Online (Sandbox Code Playgroud)
正在使用AND.
如何使用ebean编写这样的查询?
谢谢!
我正在尝试向媒体类型设置为的jaxrs服务执行请求multipart/form-data
.此请求包含实体列表(xml)和图像(png,二进制).我已经创建了BalusC 在此主题中描述的请求.
在wireshark中检查它之后,请求似乎没问题,除了ip头校验和错误.(说"可能是由IP校验和卸载引起的".)
这里我的大问题是如何在服务端处理多部分请求.我不希望包含来自apache.cxf,resteasy或任何类型的任何库.我想要依赖的是jaxrs api.
这两部分的要求有名字deliveries
和signature
,其中签名是发送二进制PNG图像文件.应该从xml解析交付列表(实体具有xmlrootelement
注释等,因此这部分单独工作).我尝试用这种方式阅读不同的部分,但这真的是一个长期的结果;
@PUT
@Path("signOff")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void signOffDeliveries(@FormParam("deliveries") List<Delivery> deliveries, @FormParam("signature")File signature) {
//do something with the signature(image) and the list of deliveries.
}
Run Code Online (Sandbox Code Playgroud)
这当然不起作用,如果我在Websphere上运行请求,它会给我一个404 http状态代码,当我向嵌入式openejb(在我们的集成测试框架中)运行请求时,它会给我一个415.如果我删除FormParam
注释,请求成功.
如何仅使用jaxrs api读取多部分请求的不同部分?
编辑
好了,所以我把它编织PUT
到了POST
,并@Encoding
为params 添加了一个注释:
@POST
@Path("signOff")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public void signOffDeliveries(
@Encoded @FormParam("deliveries") String deliveries,
@Encoded @FormParam("signature") File signature) {
}
Run Code Online (Sandbox Code Playgroud)
现在我将xml作为文本字符串,但我无法自动将其解组为交付列表,即使Content-Type
有效负载的这部分设置为application/xml
.另一个问题是我收到的文件长度== 0,我无法从中读取任何字节.
我在这里错过了一个基本点吗?
我试图在验证失败时将jquery验证器插件(低音缓冲器插件)的错误消息显示为组件上方的工具提示.工具提示(也是低音的)只是不会显示,所以我想知道如何使这些东西工作.我的代码到目前为止:
$("#loginForm").validate({
errorPlacement: function(error, element) {
$(element).tooltip({
content: 'the error message goes here'
});
}
});
Run Code Online (Sandbox Code Playgroud)
另外,我想知道如何抓住要显示的实际本地化错误消息.我不想将其硬编码到工具提示中,就像我在上面的代码片段中所做的那样.
任何帮助深表感谢!;)
我试图在play框架中使用jsRoutes进行ajax调用.它适用于不带任何参数的请求,但是当我尝试调用一个以Long作为参数的控制器方法时,它会失败而没有错误消息.这里有一些代码可以更好地解释它.
控制器类Users.java:
public static Result addToShortList(long id) {
return whatever
}
Run Code Online (Sandbox Code Playgroud)
的conf /路线
POST /shortList/:userId controllers.Users.addToShortList(userId: Long)
Run Code Online (Sandbox Code Playgroud)
在Application.java控制器文件中,我返回jsRoutes,如下所示:
public static Result javascriptRoutes() {
response().setContentType("text/javascript");
return ok(Routes.javascriptRouter("jsRoutes",
controllers.routes.javascript.Application.frontpage(),
...
controllers.routes.javascript.Users.addToShortList(),
controllers.routes.javascript.Users.removeFromShortList()));
}
Run Code Online (Sandbox Code Playgroud)
现在在我的javascript中,我可以通过执行以下操作来使用jsRoutes:
jsRoutes.controllers.Users.addToShortList(id).ajax({
success : function(data) {
alert(data);
},
error : function(err) {
//code always ends up here, with the err giving no eerror message at all!
alert(err);
}
});
Run Code Online (Sandbox Code Playgroud)
似乎播放框架的这个功能很难记录,或者我可能只是盲目不在任何地方找到它...
谢谢你的帮助!
我正在使用播放框架为我的休息服务开发一个角度应用程序.公用文件夹中的所有内容都是一个有角度的应用程序(样式表,javascripts,图像和HTML).我希望每个请求都不会被样式表,javascripts,模板或图像文件夹中的某些内容路由到index.html页面.这样,角度路由可以从那里接管......
作为旁注,我可以提一下,我将把每个restservice放在/services/
哪个链接到我自己的java控制器.
在游戏框架2.3.4中是否可以定义一条捕获所有路径而不必使用匹配元素的路由?
这是我到目前为止的路线:
GET / controllers.Assets.at(path="/public", file="index.html")
GET /stylesheets/*file controllers.Assets.at(path="/public/stylesheets", file)
GET /javascripts/*file controllers.Assets.at(path="/public/javascripts", file)
GET /templates/*file controllers.Assets.at(path="/public/templates", file)
GET /images/*file controllers.Assets.at(path="/public/images", file)
#this line fails
GET /* controllers.Assets.at(path="/public", file="index.html")
Run Code Online (Sandbox Code Playgroud) 我使用以下命令启动了我的 keycloak 服务:
docker run -d -p 8180:8080 -e KEYCLOAK_USER=admin -e \
KEYCLOAK_PASSWORD=admin -v $(pwd):/tmp --name kc \
jboss/keycloak:8.0.2
Run Code Online (Sandbox Code Playgroud)
我在 keycloak 上创建了一个新领域,只给了它一个名字,没有别的。运行命令导出它:
docker exec -it kc keycloak/bin/standalone.sh \
-Djboss.socket.binding.port-offset=100 -Dkeycloak.migration.action=export \
-Dkeycloak.migration.provider=singleFile \
-Dkeycloak.migration.realmName=my_realm \
-Dkeycloak.migration.usersExportStrategy=REALM_FILE \
-Dkeycloak.migration.file=/tmp/my_realm.json
Run Code Online (Sandbox Code Playgroud)
我现在在 my_realm.json 文件中有领域。然后我使用 docker compose 开始一个新的 keycloak 来设置我的整个测试环境。我用这个 DockerFile 构建了一个新的 docker 镜像:
FROM jboss/keycloak:8.0.2
COPY my_realm.json /tmp/my_realm.json
ENV KEYCLOAK_IMPORT /tmp/my_realm.json
ENV KEYCLOAK_MIGRATION_STRATEGY OVERWRITE_EXISTING
Run Code Online (Sandbox Code Playgroud)
Docker 组成:
version: '3.4'
volumes:
postgres_kc_data:
driver: local
services:
kc_postgresql:
image: postgres:11.5
volumes:
- postgres_kc_data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: kc
POSTGRES_USER: …
Run Code Online (Sandbox Code Playgroud) 我正在开发一个项目,我有一个webservice模块和一个webmodule.我希望基于webservice的wsdl文件生成客户端,并且我希望在构建webservice模块时生成wsdl文件.
我找到了maven插件来做到这一点(axis2-java2wsdl-maven-plugin和axis2-wsdl2code-maven-plugin),但是axis2-java2wsdl-maven-plugin一直为wsdl文件生成无效的xsd(我认为它在最小).
webservice从其方法返回一些枚举,或返回包含枚举的对象.生成wsdl文件时,我得到对"xs:Enum"的引用,这两个枚举类型在给定的命名空间中不存在.我有几个,但只有两个得到这个base ="xs:Enum".
<xs:complexType name="LoginType">
<xs:complexContent>
<xs:extension base="xs:Enum">
<xs:sequence/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
Run Code Online (Sandbox Code Playgroud)
因此,当使用axis2-wsdl2code-maven-plugin构建客户端模块时,我收到以下错误:
error: src-resolve: type 'Enum@http://www.w3.org/2001/XMLSchema' not found.
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它一直生成无效的XSD!
angularjs ×2
jax-rs ×2
validation ×2
ajax ×1
android ×1
autocomplete ×1
docker ×1
ebean ×1
encoding ×1
geocode ×1
javascript ×1
jquery ×1
keycloak ×1
maven-2 ×1
routing ×1
web-services ×1
wsdl ×1